我正在编写一个连接到 php web 服务的 android 应用程序。实际上有一个类似的 ios 应用程序运行良好,我正在克隆它。
在 php 和 ios 之间,它们使用 AES 加密/解密。它运作良好。但是使用 java 加密是可以的,但解密不起作用。Java 加密并且 php 可以理解,但是当 php 进行加密时,我的 java 代码还不够好。我正在写下面的代码。
任何人都可以指导我,帮助我吗?
PHP加密:
echo base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128,
$key,
outputstring,
MCRYPT_MODE_ECB,
nil));
IOS解密:
ccStatus = CCCrypt( encryptOrDecrypt,
kCCAlgorithmAES128,
kCCOptionECBMode,
(const void *)[symmetricKey bytes],
kCCKeySizeAES256,
nil,
(const void *) [plainText bytes],
plainTextBufferSize,
(void *)bufferPtr,
bufferPtrSize,
&movedBytes
);
Java 解密 - 不能正常工作 - 不能正常工作意味着,使用相同的数据、相同的加密、相同的密钥我无法获得相同的输出。
SecretKeySpec skey = new SecretKeySpec(key, "AES");
Cipher cipher = Cipher.getInstance(AES/ECB/NoPadding, "BC");
cipher.init(Cipher.DECRYPT_MODE, skey);
result = decrypt(cipher, input);
我正在寻找 java 解密的理想解决方案?欢迎所有帮助?