当前位置:  开发笔记 > 运维 > 正文

在Linux/POSIX中Windows的rand_s的最佳替代品是什么?

如何解决《在Linux/POSIX中Windows的rand_s的最佳替代品是什么?》经验,为你挑选了2个好方法。

问题不在于随机性本身(我们有兰特),而在于加密安全的PRNG.可以在Linux上使用什么,或者理想的POSIX?NSS有用吗?

澄清:我知道/ dev/random,但它可能用完了熵池.而且我不确定/ dev/urandom是否保证加密安全.



1> Armin Ronach..:

使用/dev/random(需要用户输入,例如鼠标移动)或/dev/urandom.后者具有熵池,除非池为空,否则不需要任何用户输入.

你可以从这里读取这样的:

char buf[100];
FILE *fp;
if (fp = fopen("/dev/urandom", "r")) {
    fread(&buf, sizeof(char), 100, fp);
    fclose(fp);
}

或类似的东西.



2> tzot..:

来自维基百科(我的斜体):

/ dev/random的对应物是/ dev/urandom("解锁"随机源),它重用内部池以产生更多的伪随机位.这意味着调用不会阻塞,但输出可能包含比来自/ dev/random的相应读取更少的熵.的目的是作为一个密码安全伪随机数发生器.这可用于不太安全的应用程序.

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有