首页 > 解决方案 > 在 PHP 中使用 AES-128 密钥和盐解密数据

问题描述

我是 AES 加密方法的新手,并尝试在客户端实现加密数据并在服务器端解密数据。

到目前为止我所做的是,我已经在 J​​ava 中实现了客户端门户,在 PHP 中实现了服务器脚本。我定义了 AES 密钥、盐,并在 AES 密钥和盐的帮助下在客户端(在 JAVA 中)加密数据。现在,我正在调用一个带有参数密钥、盐和数据的 API 到服务器(php 脚本)并尝试解密数据。我正在使用phpsecliblib 来解密数据。

我有decrypt如下示例功能。(注意:- 在发送到这个函数之前,我已经用 base64_decode 这个密钥、盐和数据解码)

public function decryptAES($data,$key,$salt){
     $cipher = new Crypt_AES(CRYPT_MODE_CBC);
     $ivsize = strlen($salt);
     $cipher->setIV($salt);
     $cipher->setKey($key);
     $decrypt = $cipher->decrypt($data);
     echo($decrypt);
     return $decrypt;
}

我收到decrypt消息为空。我查看了该库并浏览了一些名为“Base.php”的类,并尝试在它实际解密数据时进行调试。我转储明文并得到如下输出。

<pre class='xdebug-var-dump' dir='ltr'>
    <small>G:\Installer\wamp64\www\userRegistration\lib\phpseclib\Crypt\Base.php:1081:</small>
    <small>string</small>
    <font color='#cc0000'>'Zx�Q���&amp;#39;m�ԉ��^�ܶB�eKs�&amp;gt;�`&#0;�_����c^��m������h�~Ut�&amp;#39;�'</font>
    <i>(length=64)</i>
</pre>

任何人都可以帮助我吗?或者这种方式是否正确或我在这里错过的任何方法?

标签: phpencryptionaesphpseclib

解决方案


推荐阅读