2

我正在使用 Encrypt 类加密来自 codeigniter 的一些数据,这将被发送到 java 程序并需要在那里解码。

php代码:

    $this->load->library('encrypt');
    $this->encrypt->set_key(SERVER_ENCRYPT_KEY);
    $this->encrypt->set_mode(MCRYPT_MODE_CFB);
    $this->data = $this->encrypt->encode($this->input->post('data'));

关键在哪里SERVER_ENCRYPT_KEY

我发现了这个:MCrypt for Java,但我无法让它工作。还有其他库可以做到这一点吗?或者可能是如何使用 Java 版本的 MCrypt 来执行此操作的示例。

4

2 回答 2

1

看看CI_Encrypt类。除了调用mcrypt库之外,它还做了各种非标准的事情。例如,它通过自己发明的 _add_cipher_noise方法运行加密数据。此外,加密格式似乎随着不同的版本而改变——表明这种情况可能会再次发生。

如果您要在 codeignite 之外使用加密数据,则不应使用看起来像 codeignites 自己的 mcrypt 加密数据打包的东西。

于 2013-10-23T23:45:39.453 回答
1

我决定避免使用 CI_Encrypt 并使用这个PHP-Java-AES-Encrypt并稍作改动:添加噪音并使用 2 种类型的密钥。我还构建了一个工具来将旧的加密数据转换为新格式。

于 2013-11-06T10:58:39.187 回答