我正在编写一些应在浏览器中运行的代码,该代码使用 JavaScript 随机函数来生成 key 。
现在在几个论坛上看到,由于随机数生成错误,这被认为是不安全的。
现在,如果我只为每个浏览器/计算机创建一个 key 对会怎样。因此,在分布式场景中,每个浏览器实际上没有随机数序列。这是否能从根本上改变这一问题局面?感谢您的想法。
最佳答案
是的,这很重要。如果攻击者与真实用户同时生成随机数,他们可以预测生成的内容并检索他们的 key 。即使时钟没有完全同步,攻击者也可以在已知 key 已生成时生成一个围绕 UNIX 时间戳的范围,然后依次尝试每个范围。
解决方案:使用 window.crypto使用加密库生成安全随机数。
The Crypto interface represents basic cryptography features available in the current context. It allows access to a cryptographically strong random number generator and to cryptographic primitives.
关于javascript - Javascript 中的随机函数被认为是不安全的。真的有关系吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29878608/