C++与JAVA的AES算法互解问题

原创
2017/05/10 10:12
阅读数 170

参考以下文章,发现JAVA端怎么也不能正确解码

http://blog.csdn.net/jeeper_/article/details/50154787

经过多次的尝试,最终发现是生成key的问题:

原方式:

 KeyGenerator kgen = KeyGenerator.getInstance("AES");  
 kgen.init(128, new SecureRandom(decryptKey.getBytes()));

这里的SecureRandom,是问题的关键,只要用到它,JAVA永远也解不出C++的AES密文。

正确方式:

Cipher cipher = Cipher.getInstance("AES");  
cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(decryptKey.getBytes(),"AES"));

这里的decryptKey即为加密时的key。

另外需要注意的就是字符编码要一致了。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部