我偶然发现了一个桌面项目(特别是一个可执行程序),它不断地/重复地/连续地生成随机数据串。以下是它的预览:
但是,我想在Javascript中编写代码。由于这个想法非常复杂,我不能简单地从零开始,并且希望这里的任何人是否已经开发了类似的东西,或者有任何关于如何在Javascript中执行此操作的概念,以便为我提供一些信息或其他资源,也许是jQuery插件或者其他什么。
提前谢谢!
答案 0 :(得分:1)
这看起来并不是特别困难,只是Javascript的Math.random
不是高质量的随机数源。您可以查看一些最近发布的 Web Cryptography API 的实现,以了解如何改进它。
一旦你有了这个,将随机数流转换成不同的格式应该是直截了当的,使用鼠标移动来添加熵也应该不难。
哪些部分让你觉得特别困难?
<强>更新强>:
我在 JSFiddle 上发布了部分版本。这只是展示了如何不断更新和冻结该字段。但它对密码学没有任何作用。您仍然需要将鼠标移动转换为一组数值,以作为更强大的随机数生成器的输入。但是将鼠标移动转换为数字非常简单。再次,请查看 Web Cryptography API 以获取更多信息。
它使用这些片段:
var getRandomHexDigit = function() {
return (Math.floor(16 * Math.random())).toString(16).toUpperCase();
}
和
setInterval(function() {
hex.value = hex.value.substring(1) + getRandomHexDigit();
}, 50);