2013-08-20 231 views
-1

我偶然發現了一個桌面項目(特別是一個可執行程序),它不斷地/重複地/連續地生成隨機數據串。下面是它下面的預覽:客戶端密碼生成器(Javascript)

enter image description here

不過,我想中的JavaScript代碼。由於這個想法相當困惑,我不能簡單地從零開始,並希望這裏的任何人是否已經開發了類似的東西,或者有什麼想法可以在JavaScript中這樣做來給我一些信息或其他資源,也許jQuery插件管他呢。

預先感謝您!

+0

SO是不是真的幫助在開發過程的早期。但是,您可以通過['passgen'](https://github.com/defuse/passgen)(CLI)和['WinPassGen'](https://github.com/defuse/WinPassGen)在線查找源代碼。 (GUI)以及[PHP端口](https://github.com/defuse/php-passgen)。 –

+0

PHP源代碼不適合我。你可以在你的最後運行它嗎? – Keeper

回答

1

這看起來並不難,除了Javascript的Math.random不是高質量的隨機數字源。您可以參考最近發佈的一些關於如何改進這一點的想法。

一旦你有了這些,將隨機數字流轉換成不同的格式應該是直截了當的,並且使用鼠標移動來增加熵也不難。

哪個部件讓你感到特別困難?

更新

我貼在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); 
+0

特別是幾代人的移動部分。它們從現場退出的效果以及已經生成的下一個字符串的「到達」。 – Keeper

+0

@JoshGreenary:我不知道我的更新是否對您的問題提供任何幫助。 (我不清楚你是什麼意思,「這代人的移動部分」。)這是否至少啓動你在正確的方向嗎? –

+0

是的,它完全滿足我的好奇心!感謝您的時間 :) – Keeper