我使用AES加密对服务器端的php和Android应用程序(作为客户端)之间的字符串进行加密和解密。
PHP中的加密字符串是:
HaxRKnMxT24kCJWUXaVvqDHahzurJQK+sYA4lIHql/U=在Java中,它是:
HaxRKnMxT24kCJWUXaVvqD/KMEkJTPTXEcCsHIYGX9TGtCNOHQcJyUURPk8qlgf3我正在使用PHP脚本中的phpseclib进行加密。
我在这里错过了什么?
这里的相关Java代码
SecretKeySpec skeySpec = new SecretKeySpec(pad16(pass), "AES");
Cipher c = Cipher.getInstance("AES");
c.init(Cipher.ENCRYPT_MODE, skeySpec);
byte[] out = c.doFinal( input )这里的PHP代码:
$aes = new Crypt_AES();
$aes->setKey('password');
$encrypted_encoded_text = base64_encode($aes->encrypt($plaintext));发布于 2012-01-06 11:33:47
要使加密/解密跨不同语言工作,几乎没有什么东西需要相同。
H 111填充方案
也许还有更多的因素.
你确定这两种语言都是一样的吗?如果是,那么您的加密/解密应该完美无缺,除非在实现中有一个bug (这是非常罕见的,但可能的)。
https://stackoverflow.com/questions/8757101
复制相似问题