【发布时间】:2019-01-10 17:21:10
【问题描述】:
我正在尝试在 Android 应用 (Java) 上执行简单的加密/解密。 NodeJS编写的后端Api使用cryptoJS进行加密/解密如下:
encryptRequest(responseBody) {
let cipherRequest: string = CryptoJS.AES.encrypt(
requestBody,
randomKey
);
return cipherRequest;
}
结果如下:
加密:
U2FsdGVkX19O+sxMy+7X2mPkUwx7/g8NBNyLj2K/XeTO/w8q5XPGDLP4iQOja4Y4XCR8fMDF1s4aMDhaUNDdgaXXBUcKazFk7sj7xiQ7h+jpan2ta43xkudvfVGTainO9vrSfznTsdjxa5Zmq3+kGYQZ2Eyt6lB8OHDPKFXcbRbR5M7puMnu/yGnBxOSN+N4qonANcOVLhV59aLG/J+eheVFfJOPYWZSc9NE5/tdbSvPO7FZdrHtPiTWVxkAlRigMETyBl71lz1JtyN3cs8PJw==
解密:
{ “用户名”:“我的用户名”, "accountType": "用户", “平台”:“移动”, “版本”:“7.0.0”, “密码”:“vivcXZFIqICjQB32aKSnvcVibEnmpGskMCT6Fv7aWnw=” }
我正在使用这个库https://github.com/scottyab/AESCrypt-Android在前端解密,但返回的值始终为空,使用相同的密钥。
Android 代码
try {
AESCrypt.decrypt(randomKey, responseBody); // no value is returned
}catch (GeneralSecurityException e){
}
在没有图书馆的情况下,我可以通过什么方式获得解密数据,研究帖子上的其他解决方案似乎很复杂,我几乎无法理解。
【问题讨论】:
-
不要使用 CryptoJS 等文档记录不佳的库,这会使代码很难移植到其他平台。
-
同意。 CryptoJS 的文档几乎为零,而且它确实拥有的文档很模糊。为什么不能使用内置节点
crypto模块?
标签: java android encryption aes