php - 在 PHP 中使用 AES-128 密钥和盐解密数据
问题描述
我是 AES 加密方法的新手,并尝试在客户端实现加密数据并在服务器端解密数据。
到目前为止我所做的是,我已经在 Java 中实现了客户端门户,在 PHP 中实现了服务器脚本。我定义了 AES 密钥、盐,并在 AES 密钥和盐的帮助下在客户端(在 JAVA 中)加密数据。现在,我正在调用一个带有参数密钥、盐和数据的 API 到服务器(php 脚本)并尝试解密数据。我正在使用phpseclib
lib 来解密数据。
我有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���&#39;m�ԉ��^�ܶB�eKs�&gt;�`��_����c^��m������h�~Ut�&#39;�'</font>
<i>(length=64)</i>
</pre>
任何人都可以帮助我吗?或者这种方式是否正确或我在这里错过的任何方法?
解决方案
推荐阅读
- r - 如何在 rmarkdown 中使用 results='asis' 显示格式化的 R 输出
- .net - 在获得批准后使用 jenkinsfile 构建促销
- python - 替换python中的字符串字符
- jestjs - 如何抑制 Jest 中的 JSDOM 错误?
- python - 尝试为 4x4 棋盘坐标创建 python 字典
- linux - 如何从 JSON 输出文件中删除这些特殊字符
- javascript - 字符串替换 js/GAS 中的正则表达式无效量词
- javascript - 如何模拟 jest 函数并期望通过模拟结果?
- html5-video - HTML5 渐进式视频下载
- java - 如果我们只写包装代码,我们应该写自动化测试代码吗?