我正在尋找javascript的crypt(3)的實現。 (不是通用的「crypt」算法,而是在/etc/shadow
例如在Linux系統中使用的crypt(3))。有人見過嗎?憑藉開放許可證?有人在Javascript中看到過crypt(3)實現嗎?
我有點擔心的表現太:難道甚至可以寫一個在JavaScript?例如。該sha512-crypt source有:
/* Repeatedly run the collected hash value through SHA512 to burn
CPU cycles. */
for (cnt = 0; cnt < rounds; ++cnt)
{ ... }
所以,如果該算法在C「燒CPU週期」,會是什麼在JavaScript做什麼?炒? (例如IE6?Yikes!)我不是在javascript中編寫蠻力攻擊util,只是一次在藍色月亮中的一次crypt調用,所以也許它會好起來的。
背景:我們希望從用戶提供的/etc/password
//etc/shadow
文件中導入我們的webapp用戶。由於我們對用戶密碼的唯一信息是crypt(3)輸出格式,因此,爲了避免以明文形式發回用戶密碼,就我所知,我們需要一個客戶端(javascript )crypt(3)的實現,所以當web服務器提供一個salt時,客戶端發回crypt(3)輸出(爲了安全性適當散列)。
使用crypt(3)客戶端的任何替代方法都允許我們在服務器端對/etc/password
//etc/shadow
進行安全身份驗證,並且不需要https://也將被視爲有效答案。
我意識到,如果一個攻擊者可以進行中間人攻擊,他就可以以明文形式訪問用戶的密碼。期。但我不同意這一點很容易受到使用[nonce](http://en.wikipedia.org/wiki/Cryptographic_nonce)的簡單重播攻擊。如果Web服務器發送'(nonce,crypt_salt)',並且客戶端發送'sha512(concat(nonce,crypt(password,salt)))''。 https://然後只需以明文形式發送密碼即可使用,但明確排除在我的問題之外(唉,) – 2012-02-24 11:08:06