Math.random
これは、Javascriptが高品質の乱数ソースではないことを除けば、特に難しいようには見えません。最近リリースされた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);