Java和移动端交互

Unity 如何使用命令模式 命令模式 游戏中,当你想通过一种通用的方式来存储命令并能够撤消命令时,那么命令模式最有用。 在“示例”中,你将看到一个可以通过GUI按钮移动的简单点。 采取行动后,您可以撤消并重做。我在屏幕上添加了一个简单的OnGUI标签输出,因此您可以看到命令列表,并指出哪个是当前命令。 在此示例中使用了4个类: Command-这是任何命令模式都可以继承的基本结构(抽象类)。您可以在任何项目中使用此类。 MoveCommand-这是从Command类继承的结构,将使用Execute和UnExecute(撤消)。每个移 阅读详情

Java和移动端交互

我们开发java EE项目,不止有B/S模式,还有C/S模式,也就是客户端-服务端的方式,现在的主流客户端基本都是移动端,那么java如何和移动端交互呢

其实对于任何模式的请求来说,都没有任何区别,因为他们最终都被封装为java总的request对象,所以在我们的java服务的来说我们是不需要做什么改动的,只是因为移动端我们返回一个页面给它的话它解析起来比较麻烦,所以移动端都是以返回json数据的格式操作,也就是相当于我们在html中的ajax异步请求返回json的操作

 

加密

因为http协议的原因,它会将数据以明文的方式进行发送,所以http协议是不安全的,我们应该将数据进行响应处理之后再发送

app的开发和网页开发不一样,http协议中网页中对无法对数据进行加密处理,app因为是代码开发的,可以方便对数据加密,防止敏感数据被窃取

加密方式

对称性加密

所谓的对称性加密指的是加密密码和解密密码一致的加密方式,也就是在服务端和客户端上面都要保存有密码,这种方式适合对安全性能要求没有那么高的产品,主要是方式数据在通信过程中被破解,但是如果客户端被破解,则会暴露密码

常见对称加密方式

DES

 DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信中使用,随后该算法在国际上广泛流传开来

AES

 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用

非对称性加密

区别于对称性加密,费对称性加密指的是加密和解密密码不一致的方式,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法

常见非对称加密方式

RSA

 RSA是目前最有影响力和最常用的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,RSA算法基于一个十分简单的数论事实:将两个大质数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。

在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然解密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK。

RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作,HTTPS的证书使用的便是RSA

 

非加密方式

 有一些我们经常会被误认为是加密的非加密算法,在实际开发中,我们经常会口误将其表达为加密,下面我们列出一些非加密方式

MD5

MD5是最常见的非加密方式,也是被误认为是加密最多的方式,MD5其实是一种基于消息摘要算法实现的散列函数,用于确保信息传输完整一致,主要用于校验,数据库中存放的是原始内容的MD5值,然后将传递过来的内容转换为MD5,之后进行比较,如果一致,则代表输入正确,MD5是不可逆的,网上的所谓解密网站其实是通过不断计算存储各种数据的MD5,然后将输入的MD5和数据库中存储的进行比较得到的结果

MD5算法具有以下特点:

  1. 压缩性:任意长度的数据,算出的MD5值长度都是固定的。
  2. 容易计算:从原数据计算出MD5值很容易。
  3. 抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
  4. 强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。

MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。除了MD5以外,其中比较有名的还有sha-1、RIPEMD以及Haval等。

SHA

安全散列算法SHA,是美国国家标准技术研究所发布的国家标准FIPS PUB 180,最新的标准已经于2008年更新到FIPS PUB 180-3。其中规定了SHA-1,SHA-224,SHA-256,SHA-384,和SHA-512这几种单向散列算法。SHA-1,SHA-224和SHA-256适用于长度不超过2^64二进制位的消息。SHA-384和SHA-512适用于长度不超过2^128二进制位的消息

 

使用方式

非对称使用方式

在和移动交互中,包括和网页的交互中,使用非对称加密的方式进行加密是安全级别最高的,其实我们只需要将网站修改为https即可,服务端不需要做任何事情,只需要移动端做处理即可,但是注意,使用https的话,如果使用的是非浏览器认为的安全机构签名的证书或者自制证书,浏览器会警告网站不安全,但是不影响通讯
配置https的方式,请参考 tomcat配置https的文档

 

对称性使用方式

对称性方式是普通app中最常见的加密方式,使用简单,也有一定安全性,使用代码网上一搜索一大堆,需要注意的是,我们加密后的数据是二进制数据,是无法直接转换为字符串发送到服务端的,如果直接转换会导致数据的丢失,导致无法解密,所以我们需要配合BASE64编码的方式将其转换为字符串

代码

因为双方操作的一致性,所以我们只需要写一份代码工具类,然后给移动端即可,仅限于android,ios需要单独写,使用方式

加密:

1.使用encryptNew方法将要传递的字符串进行加密,得到byte数组

2.使用parseByte2HexStr将加密后的byte数组转码为字符串,此字符串和原始内容不一致

解密:

1.收到数据后,首先调用parseHexStr2Byte将参数进行解码,变回原始的加密后数据

2.将第三步的返回结果作为参数调用decryptNew得到一个解密后的byte数组,这数组是原始内容的数组,可以直接new为字符串

服务端需要向客户端返回加密的数据,使用步骤同上,只不过变为服务的加密,客户端解密

 

/**
 * Created by jackiechan on 17/2/27. 加密必须得保证数据安全性(解密后的数据正确性)
 * 加密工具类
 *    
 */

public class SecretUtils {


    /**
     *  Base64编码方法
     * 将二进制转换成16进制,将加密后的二进制数据转字符串
     *
     * @param buf
     * @return
     */
    public static String parseByte2HexStr(byte buf[]) {
       StringBuffer sb = new StringBuffer();
       for (int i = 0; i < buf.length; i++) {
           String hex = Integer.toHexString(buf[i] & 0xFF);
           if (hex.length() == 1) {
              hex = '0' + hex;
           }
           sb.append(hex.toUpperCase());
       }
       return sb.toString();
    }

    /**
     * Base64解码,将字符串解码为编码前的数据,即转回加密后的二进制数据,
     * 将16进制转换为二进制 ,利用上面的转换方式转出的显示内容需要先利用此方式转码后解密用
     *
     * @param hexStr
     * @return
     */
    public static byte[] parseHexStr2Byte(String hexStr) {
       if (hexStr.length() < 1)
           return null;
       byte[] result = new byte[hexStr.length() / 2];
       for (int i = 0; i < hexStr.length() /

复分析 阿尔福斯(Ahlfors) 第三版答案 英文 答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案 立即下载

相关推荐

arXiv订阅进阶玩法:除了邮件,还能用RSS和Python脚本打造你的专属论文追踪器

本文介绍了arXiv订阅的进阶玩法,教你如何通过RSS和Python脚本打造个性化的论文追踪器。突破传统邮件订阅的局限,实现实时更新、精准过滤和自动化管理,提升科研效率。特别适合需要高效追踪最新研究进展的学者和开发者。

weixin_26757925的博客 626

PLL锁相环性能上不去?可能是电荷泵的电流失配在捣鬼(附Jae-Shin Lee经典方案解析)

本文深入分析了PLL锁相环性能瓶颈的根源——电荷泵电流失配问题,详细解析了Current Mismatch和Current Deviation的区别及其对系统的影响。重点介绍了Jae-Shin Lee的多级电流镜技术,该方案通过运放构建虚拟短路和四级电流镜结构,显著降低了电流失配,使参考杂散改善15dB以上。文章还提供了从仿真到流片的完整优化流程,帮助工程师系统解决电荷泵性能问题。

weixin_30684743的博客 370

HyperLynx实战:手把手教你搞定DDR4信号完整性仿真(附ODT与终端电阻配置避坑)

本文详细介绍了使用HyperLynx进行DDR4信号完整性仿真的实战技巧,重点解析了ODT配置与终端电阻优化的黄金法则。通过模型准备、拓扑构建、ODT扫描等关键步骤,帮助硬件工程师规避常见设计陷阱,提升高速数字电路设计的效率与可靠性。

weixin_30861797的博客 639

《Swin-Unet: 类Unet的纯Transformer架构用于医学图像分割》学习笔记

近年来,卷积神经网络(CNN)在医学图像分析领域取得了重要进展。尤其是基于U形架构和跳跃连接的深度神经网络广泛应用于各种医学图像任务。然而,尽管CNN表现优异,但由于卷积操作的局部性,其难以很好地学习全局和长距离语义信息的交互。在本文中,我们提出了Swin-Unet,一种用于医学图像分割的类Unet纯Transformer模型。被切分为Token的图像块输入到基于Transformer的U形编码器-解码器架构中,通过跳跃连接实现局部和全局语义特征的学习。

学无止境。 5547

DSSAT模型建模教程

随着数字农业和智慧农业的发展,基于过程的作物生长模型(Process-based Crop Growth Simulation Model)在模拟作物对气候变化的响应与适应、农田管理优化、作物品种和株型筛选、农业碳中和、农田固碳减排等领域扮演着越来越重要的作用。现有版本V4.7能模拟27种主要农作物的生长发育和产量形成过程,被广泛应用于精细农业、水肥管理、气候变化、粮食安全、土壤碳周转、环境影响、农业可持续性、农业生态等诸多与农业生产和科研有关的领域。如果你是个模型入门者,这次将让你体验一键模拟的乐趣。

weixin_55561616的博客 1414

1. 如何使用扣子工作流一键生成儿童绘本(可以发到小红书,微信公众号图文等)

本文介绍了使用扣子智能体一键生成儿童绘本的工作流。用户只需输入绘本主题,系统会自动生成Markdown格式内容,可直接发布到优快云、小红书等平台,还支持推送至微信公众号草稿箱。操作步骤包括:访问扣子网站导入工作流源代码,输入主题试运行,查看实时进度和最终输出结果。工作流编辑器会显示每个节点的执行状态和耗时,支持通过"查看日志"功能回溯历史运行记录。文末附有工作流源代码下载链接。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1246

PCL 逐点插入法构建Delaunay三角网(C++详细过程版)

点云构建Delaunay三角网的逐点插入法基于PCL点云库的C++详细过程版实现

点云侠的博客 2992

STM32入门教程:水位传感器应用

这是一个简单的STM32水位检测系统的入门教程。希望通过学习本教程,您能对STM32微控制器的基本应用有更深入的了解,并能成功构建一个水位检测系统。如果您需要更详细的代码实例和教程,请参考相关的STM32开发手册和应用笔记。STM32是一款功能丰富且广泛应用于嵌入式系统的微控制器系列。在本教程中,我们将介绍如何使用STM32微控制器和水位传感器构建一个水位检测系统。

wx_linying1029的博客 533

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

上一篇: JVM的内存模型
下一篇: Javascript脚本之清除浏览器历史数据
千锋-陈.Mr
博客等级 码龄8年 50粉丝 224原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值