随机数生成器示例代码

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.xmece.com/support.我们将在未来几天修复bug /优化搜索和标记。
2个帖子/ 0个新
最后发表
Ankit
离线
最后看到:4个月2周之前
加入:2017-05-24 07:42
随机数生成器示例代码

我使用trng_acquire(uint8_t* rnd_no)函数。我不能每次都得到随机数。下面是我的示例代码。

空白aes_test(空白)

uint8_t random_number [16];

trng_acquire (random_number);//随机数成功接收
memcpy (aes_env.aes_key。4、4、16);
rwip_schedule ();
trng_acquire (random_number);//随机数成功接收
aes_init (false, NULL);
aes_operation(key, sizeof(key),明文,sizeof(明文),aes_out, sizeof(aes_out), 0, NULL, 0);
rwip_schedule ();
trng_acquire (random_number);//不能接收随机数
aes_operation(key, sizeof(key), aes_out, sizeof(Plaintext), aes_result, sizeof(aes_out), 1, aes_done_cb, 0);
rwip_schedule ();
trng_acquire (random_number);//不能接收随机数

当我调试上面的代码,我能够产生随机数的前两次。在接下来的两个试验中,我没有收到随机数。表示random_number变量未升级。

所以,现在我使用rand()函数,它工作得很好。

但我还是想知道,在上面的例子中,为什么我没有每次都得到一个新的随机数。

设备:
MT_dialog
离线
最后看到:4个月3天前
工作人员
加入:2015-06-08 34
嗨Ankit,

嗨Ankit,

trng_aquire的目的()只有种子随机函数,而不是直接使用,原因您不能使用trng_aquire()直接是为了获得从580年一个随机数SDK使用无线电模块和通过改变无线电寄存器的值获取随机数,因此,正如您可以想象的那样,反复这样做是不建议的,因为如果BLE中断发生时,无线电是在一个未定义的状态,那么这将会有意想不到的结果。正确的用法是通过rand()函数。现在关于值没有在调试期间更新,我认为这与你在调试模式,因为我试图重复调用多次trng_aquire(),但我总是得到一个新的生成的数字值和打印它的事实有关。问题发生时,试图有一个BLE操作(例如广告),并运行trng_aquire()函数,如前所述,将有意外的结果,至少在我的方面,我总是得到0时,一个随机值,不能找到BLE设备。总之,不要使用trng_aquire()函数来生成随机数据,而是使用rand()函数。

由于MT_dialog