【发布时间】:2018-11-01 02:50:25
【问题描述】:
我需要生成一个随机密码,该密码将在 OpenPGP.js 中用于对称加密某些内容。用户永远不必触摸或查看密码(一切都在幕后发生)。 因此,理想情况下,密码只是一些随机字节。不幸的是,OpenPGP.js 不支持(据我所知)。它只支持字符串作为密码。
所以我需要生成一个随机密码字符串。我希望它尽可能随机;排除尽可能少的字符。
如何生成安全的随机密码字符串?
我目前有这个:
String.fromCharCode.apply(null, crypto.getRandomValues(new Uint8Array(32)));
但是,我有点担心,当某些随机字节出现时,它可能会弄乱 UTF-16 代理对,并且根据 Unicode 实现,密码在其他浏览器上的解释可能会有所不同。
此解决方案跨浏览器使用是否安全?
【问题讨论】:
标签: javascript passwords openpgp.js