首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Libsodium“调用未定义函数sodium_randombytes_buf”

Libsodium“调用未定义函数sodium_randombytes_buf”
EN

Stack Overflow用户
提问于 2017-09-14 09:53:51
回答 1查看 2.4K关注 0票数 3

试着学习这里的例子,但是它给了我

代码语言:javascript
运行
复制
Fatal error: Uncaught Error: Call to undefined function sodium_randombytes_buf()

除此之外,键对似乎正在生成奇怪的字符串,如:

kÿòjƒFDú{î—4]F◊î¸˜ßˆu…®_•A∞+

这正常吗?

这是我的密码

代码语言:javascript
运行
复制
<?php

// send
$message = 'Hi, this is Alice';
$alice_to_bob_kp = sodium_crypto_box_keypair_from_secretkey_and_publickey(
    file_get_contents('./keys/sec-user-1_box_key.txt'),
    file_get_contents('./keys/pub-user-2_box_key.txt')
);
$nonce = sodium_randombytes_buf(SODIUM_CRYPTO_BOX_NONCEBYTES);
$ciphertext = sodium_crypto_box(
    $message,
    $nonce,
    $alice_to_bob_kp
);




// receive
$bob_to_alice_kp = sodium_crypto_box_keypair_from_secretkey_and_publickey(
    // $bob_box_secretkey,
    // $alice_box_publickey
    file_get_contents('./keys/sec-user-2_box_key.txt'),
    file_get_contents('./keys/pub-user-1_box_key.txt')
);
$nonce = sodium_randombytes_buf(SODIUM_CRYPTO_BOX_NONCEBYTES);
$plaintext = sodium_crypto_box_open(
    $ciphertext,
    $nonce,
    $bob_to_alice_kp
);
if ($plaintext === false) {
    die("Malformed message or invalid MAC");
}
die($plaintext);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-14 09:57:41

没有像sodium_randombytes_buf()这样的函数,示例中的代码使用\Sodium\randombytes_buf()

编辑:

从bug历史:“sodium_randombytes_*符号已经删除了一段时间了,因为PHP现在提供了类似的函数而没有这个扩展。”

Bug #74896钠的.h定义了一些没有.c实现的函数

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46215938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档