2013-01-12 154 views
3

我有一個密碼,我想從中生成128位或256位WEP密鑰。任何指針或鏈接將有助於如何從純文本生成WEP密鑰。如何將密碼轉換爲128位/ 256位WEP密鑰?

+3

爲什麼你** EVER **使用WEP?!它幾乎與不加密一樣不安全!如果你想要安全,你必須**使用WPA! – ThiefMaster

+0

這裏是:['(void *)0'](http://en.wikipedia.org/wiki/Cryptographic_hash_function)。 –

+2

@ThiefMaster:OP沒有說她想要使用WEP。她只想創建一個WEP **鍵**。 –

回答

0

閱讀關於Key Derivation Functions從頭開始。高品質的現代KDF是scrypt,bcryptPBKDF2。他們都有開源的實現。

對於PBKDF2,您可以指定派生密鑰的長度。對於scrypt,您可以選取輸出的前N位並將它們用作鍵。

如果不使用KDF,最直接的方法是將您的密碼與24位IV(初始化向量)連接起來,形成一個RC4密鑰。

請注意,WEP會將您的密鑰和IV結合起來爲種子數據流提供密鑰的RC4流;出於這個原因,WEP有一些缺點,這使得它無法提供足夠的數據機密性。您可以按照Wikipedia page鏈接瞭解更多信息。

不要使用密碼散列作爲派生密鑰。

2

希望原來的海報已經找到了答案,但我找到了這個信息SHOCKINGLY難以置信,因爲它已被廢棄。正如反覆提到的那樣,在這個線程和其他人中,WEP是非常不安全的,但由於某種原因,沒有人願意直接給出答案,並且有很多建議去學習其他東西。

對於原始問題,128位密鑰是一個64字節字符串的MD5散列。這個64字節的字符串是一遍又一遍重複的ASCII通行短語,然後被截斷爲64字節。例如在SQL Server中,這會顯示爲:

SELECT CAST(HASHBYTES('MD5', LEFT(REPLICATE(@phrase, CEILING(64.0/LEN(@phrase))), 64)) AS varbinary(13)) 
相關問題