我现在真的不需要做什么。我尝试安装另一个libsodium的版本,但是模块有问题。希望您能为我提供帮助,因为我不知道我是否正确使用了这些功能...
phpinfo返回了启用libsodium的信息,当我尝试这样的代码时:
var_dump([
SODIUM_LIBRARY_VERSION,
SODIUM_LIBRARY_MAJOR_VERSION,
SODIUM_LIBRARY_MINOR_VERSION
]);
它显示此:
array(3) { [0]=> string(6) "1.0.16" [1]=> int(10) [2]=> int(1) }
但是...如果我尝试这样做:
$kyp = sodium_crypto_kx_keypair();
$pub = sodium_crypto_kx_publickey($kyp);
$pri = sodium_crypto_kx_secretkey($kyp);
print_r($pub);
echo "<br/>";
echo "<br/>";
echo "<br/>";
echo "<br/>";
echo "<br/>";
print_r($pri);
该网页显示:
�����gP�v� �zGG��I34���~%�b
�+��B�;��k{C��G�8��a��8S��`
PS:我在Windows 10中将Laragon与PHP 7.2.11一起使用
您的代码正常工作。您缺少的是钠函数将以二进制格式返回数据。如果要打印密钥数据,则需要将其转换为十六进制,例如(as shown in the documentation):
$keypair = sodium_crypto_kx_keypair();
$secret = sodium_crypto_kx_secretkey($keypair);
$public = sodium_crypto_kx_publickey($keypair);
printf("secret: %s\npublic: %s", bin2hex($secret), bin2hex($public));