2013-01-12 199 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)) 
相关问题