gpt4 book ai didi

random - 使用加密安全的 PRNG 生成密码是否更安全?

转载 作者:行者123 更新时间:2023-12-02 21:51:47 24 4
gpt4 key购买 nike

我们有一个脚本可以在我的工作中建立一个新的网络服务器。该脚本涉及创建多个帐户来运行服务、应用程序池等。

我们需要为这些用户中的每一个创建一个密码——即生成一个大约 32 个字符的 ASCII 字符串用作登录密码。

我们对于是否应该为这项工作使用加密安全的 PRNG,或者使用非加密安全的 PRNG(具有时间相关的种子)是否足够(我们在 .NET 中工作,所以具体的决定是在使用 System.Random 生成字符串和使用 RNGCryptoServiceProvider 之间做出选择——但是,这不是特定于语言的问题)。

必须使用加密安全的随机性来生成密码,还是一个合理播种的纯 PRNG 就足够了?

最佳答案

在许多情况下,攻击者可以轻松地从一些输出值中恢复(非加密)随机数生成器的状态——而无需对种子一无所知。之后,预测所有 future 和之前的随机数就变得微不足道了。

这需要多少输出取决于算法。对于线性同余生成器,例如 Java 的 java.util.Random,可以从两个输出中恢复状态。对于在 PHP 和 Python 等中使用的 Mersenne Twister,您需要获得 624 个输出。我不熟悉 .NET,但我认为这是一个类似的故事。

根本不涉及复杂的数学。自己看看:

结论:对任何与安全有关的事情都使用加密安全的随机数生成器。

关于random - 使用加密安全的 PRNG 生成密码是否更安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18499758/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com