[英]Encrypt/Decrypt string between Java and PHP
我正在使用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));
为了使加密/解密能够跨不同语言工作,很少有东西需要相同。
填充方案
可能还有一些因素......
你确定这两种语言都是一样的吗? 如果是,那么你的加密/解密应该完美无缺,除非在实现中存在错误(这是非常罕见但可能的)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.