如何用Java解密来自PHP的加密响应?

时间:2013-04-23 22:47:41

标签: java php android

目标:我打算在PHP中加密JSON响应,一旦Android应用程序收到该响应,它就会对其进行解密。

我能够在PHP中找到加密和解密功能:

<?php
   function simple_encrypt($text)
    {
    $salt = "anything";
        return trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $salt, $text, MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND))));
    }

    function simple_decrypt($text)
    {
        $salt = "anything";
        return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $salt, base64_decode($text), MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)));
    }
?>

(我实际上并不需要simple_decrypt功能,我只是在测试它。我实际需要的只是服务器端的加密,以及客户端的解密(我的Android应用程序))

所以我需要一个类似于simple_decrypt的函数,但是用Java编写,所以我可以解密我的响应。

我不知道怎么做,因为我对加密/解密很新。我希望这里的一些专家可以指导我找到合适的解决方案。

1 个答案:

答案 0 :(得分:0)

Here is some PHP/Java code I found - 这是对PHP代码的改进,因为它使用密码反馈模式(CFB),这比ECB(电子密码本)更安全。要在Java中使用256位AES,您需要安装this page底部的Java Cryptography Extension。请注意,PHP和Java代码都需要使用相同的初始化向量 - 这对于每个密文都应该是唯一的,但是可以用明文传输。

如果您正在使用SSL,那么这不是必需的 - 如果数据从PHP传输到数据库/文件/其他持久存储,再到Java,则只需要这样做。

相关问题