不管是 python 加密 -> java 解密,或 java加密->python解密 总是有前几个字节(3-8个不定)解不出来,难道是我操作方式不对?
python 加密代码:
python
def encrypt(content):
iv_time = long(time.time() * 1000)
iv = struct.pack('Q', iv_time)
des = DES3.new(http_api_app_secret, DES3.MODE_CBC, iv)
content = encrypt_pad(content)
content = des.encrypt(content)
content = urllib.quote(base64.b64encode(content))
return str(iv_time) + content
java 解密代码:
`````
byte[] decrypt(byte[] key, byte[] iv, byte[] message) {
byte[] result = null;
try {
Cipher cipher = Cipher.getInstance("DESede/CBC/NoPadding");
SecretKeyFactory skf = SecretKeyFactory.getInstance("DESede");
SecretKey secretKey = skf.generateSecret(new DESedeKeySpec(key));
IvParameterSpec ivParameterSpec = new IvParameterSpec(iv);
cipher.init(Cipher.DECRYPT_MODE, secretKey, ivParameterSpec);
result = cipher.doFinal(message);
} catch (Exception e) {
throw new SecurityException(e);
}
return result;
}
两种语言自己加密解密都是正常的
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.