【问题标题】:Client-sided password generator (Javascript)客户端密码生成器 (Javascript)
【发布时间】:2013-08-20 01:48:58
【问题描述】:

我偶然发现了一个桌面项目(尤其是可执行程序),它不断/重复/连续地生成随机数据字符串。下面是它的预览:

但是,我想在 Javascript 中编写代码。由于这个想法非常令人困惑,我不能简单地从零开始,我希望这里是否有人开发了类似的东西或对我如何在 Javascript 中执行此操作有任何想法,以便给我一些信息或其他资源,也许是 jQuery 插件或其他。

提前谢谢你!

【问题讨论】:

  • SO 并不是为了在开发过程的早期提供帮助。但是,你可以在网上找到源代码passgen(CLI)和WinPassGen(GUI),以及PHP port
  • PHP 源代码不适合我。你能运行它吗?

标签: javascript passwords generator


【解决方案1】:

这看起来并不特别难,除了 Javascript 的 Math.random 不是随机数的高质量来源。您可以查看一些最近发布的 Web Cryptography API 实现,以了解如何改进它。

一旦有了这些,将随机数流转换为不同的格式应该很简单,使用鼠标移动添加熵也应该不难。

哪些部分让您觉得特别困难?

更新

我在 JSFiddle 上发布了部分版本。这只是显示该字段如何不断更新和冻结。但它对密码学没有任何作用。您仍然需要将鼠标移动转换为一组数值,以作为更强大的随机数生成器的输入。但是将鼠标移动转换为数字非常简单。同样,请查看 Web Cryptography API 了解更多信息。

它使用这些 sn-ps:

var getRandomHexDigit = function() {
    return (Math.floor(16 * Math.random())).toString(16).toUpperCase();
}

setInterval(function() {
    hex.value = hex.value.substring(1) + getRandomHexDigit();
}, 50);

【讨论】:

  • 特别是世代的移动部分。他们退出该领域的影响以及已生成的下一个字符串的“到达”。
  • @JoshGreenary:我不知道我的更新是否对您的问题有任何帮助。 (我不清楚你所说的“几代人的移动部分”是什么意思。)这是否至少让你朝着正确的方向前进?
  • 是的,完全满足了我的好奇心!谢谢你的时间:)
猜你喜欢
  • 1970-01-01
  • 2012-02-15
  • 1970-01-01
  • 1970-01-01
  • 2020-07-29
  • 2010-12-02
  • 1970-01-01
  • 1970-01-01
  • 2019-08-17
相关资源
最近更新 更多