1

我正在编写一个连接到 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 解密的理想解决方案?欢迎所有帮助?

4

0 回答 0