3
我使用AES加密來加密和解密服務器端的PHP和Android應用程序(作爲客戶端)之間的字符串。Java和PHP之間的加密/解密字符串
PHP中的加密字符串是:
HaxRKnMxT24kCJWUXaVvqDHahzurJQK+sYA4lIHql/U=
,並在Java中它是:
HaxRKnMxT24kCJWUXaVvqD/KMEkJTPTXEcCsHIYGX9TGtCNOHQcJyUURPk8qlgf3
我利用phpseclib在PHP腳本執行加密。
我在這裏錯過了什麼?
這裏的相關的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));
在Java-PHP之間進行加密/解密時存在填充問題。看到這個鏈接 - http://www.logikdev.com/2010/11/01/encrypt-with-php-decrypt-with-java/ – Manish 2012-01-06 11:30:36
@ManishSharma:哦感謝提到填充! :) – 2012-01-06 11:38:36