参考以下文章,发现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。
另外需要注意的就是字符编码要一致了。