同步操作将从 修行者/WebEncryption 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#WebEncryption
网络传输加密技术,用于数据在网络传输的过程中:为了防止数据被拦截破解,而采取的加密。数据处理流程:首先将文本数据进行zip压缩,然后使用AES加密,最后发送出去;对方接收到数据后,则先执行AES解密操作,再执行zip解压即可。
【注意】Android客户端的压缩解压缩,均使用JNI完成,以防被破解。并且在底层验证了apk签名是否正确,然后再决定是否执行加密解密算法。
#使用方法
##生成密码
调用GeneratePassword.java文件中的主函数,即可生成加密解密密码(初始化向量也可以使用这个方法来生成)。
生成的密码格式如下:
AES密码C语言版:88,19,206,109,85,77,248,70,128,192,20,248,102,50,83,240
AES密码Java版:88,19,-50,109,85,77,-8,70,-128,-64,20,-8,102,50,83,-16
生成密码后,讲加密解密密码和异或密码拷贝到JavaAESEncrypt.java和AESEncrypt.h文件中。
加密密码:key和_aes_key
初始化向量:iv和_aes_iv
##服务器端
将上面生成的密码拷贝到JavaAESEncrypt.java,加密解密算法即可使用。
###发送数据
首先将客户端需要的数据进行压缩(也可以不压缩),加密,然后在发送加密后的字节数组:
try {
// 压缩数据,也可以不压缩,直接加密
byte[] zipData = JavaAESEncrypt.compress(data);
// 加密数据
byte[] resultData = JavaAESEncrypt.AESencrypt(zipData);
} catch (Exception e) {
e.printStackTrace();
}
###接收数据 接收到客户端的数据后,先进行解密,在进行解压(如果客户端没有压缩的话,则不需要执行解压操作):
try {
// 解密数据
byte[] zDate = JavaAESEncrypt.DecodeAESEncrypt(resultData);
// 解压数据
String resultDate = JavaAESEncrypt.uncompress(zDate);
log += "解密后 : " + resultDate + "\n\n";
} catch (Exception e) {
e.printStackTrace();
}
##Android客户端
Android客户端使用之前,首先要将生成的密码拷贝到AESEncrypt.h文件中,然后再做以下操作:
CAESEncrypt.initialize(getApplicationContext());
###发送数据 将需要发送的数据打包成字符串,然后使用CAESEncrypt类进行压缩(也可以不压缩)和加密。完成处理后发送给服务器:
String data = "{[{\"name\":\"jim\", \"age\":16},{\"name\":\"jerry\", \"age\":18},{\"name\":\"kate\", \"age\":21}," +
"{\"name\":\"jack\", \"age\":20},{\"name\":\"tim\", \"age\":19},{\"name\":\"green\", \"age\":22}]}";
// 压缩数据,也可以不压缩,直接加密
byte[] zipData = CAESEncrypt.compress(data.getBytes());
// 加密数据
byte[] resultData = CAESEncrypt.AESencrypt(zipData);
###接收数据 将从服务器接收到的数据进行解密、解压(如果服务器未压缩,则不执行解压操作)处理:
// 解密数据
byte[] zDate = CAESEncrypt.DecodeAESEncrypt(resultData);
// 解压数据
String resultDate = new String(CAESEncrypt.uncompress(zDate));
#AES加密算法
本项目使用了比较常用的AES加密算法模式:CBC模式。具体介绍请参考谷歌和百度。
本项目对此加密算法进行了如下改动:
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。