微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP 钠解密返回 False

如何解决PHP 钠解密返回 False

我是 PHP 和 stackoverflow 的新手,因此可能会发生一些错误。如果有,请通知我,我会尽快解决

我的加密功能

function encrypt($data){
$nonce = random_bytes(sodium_CRYPTO_SECRETBox_NONCEBYTES);
$ciphertext = sodium_crypto_secretBox($data,$nonce,$GLOBALS['key']);
$ciphertext = base64_encode($ciphertext);
$ciphertext .= "[-SPLIT-]" . base64_encode($nonce);

return $ciphertext;}

我的解密功能

function decrypt($data){   
$data = explode("[-SPLIT-]",$data);
$ciphertext = base64_decode($data[0]);
$nonce = base64_decode($data[1]);
$plaintext = sodium_crypto_secretBox_open($ciphertext,$GLOBALS['key']);

if(!$plaintext){$plaintext = "Failed";}
return $plaintext;}

我已经做了足够多的测试,知道我正在将从加密函数返回的 $ciphertext 传递给解密函数

如何使函数返回在我的加密函数中加密的解密字符串?

解决方法

发现我的问题,一个简单的 print_r() 把我搞砸了。上面的代码按预期工作,我将很快发布一些改进。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?