如何将密码转换为128bit / 256bit WEP密钥?

时间:2013-01-12 12:03:03

标签: c wep

我有一个密码,我想从中生成128位或256位WEP密钥。任何指针或链接都将有助于如何从纯文本生成WEP密钥。

2 个答案:

答案 0 :(得分: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))

答案 1 :(得分:0)

首先阅读Key Derivation Functions。高质量的现代KDF是scryptbcryptPBKDF2。所有这些都有开源实现。

对于PBKDF2,您可以指定派生密钥的长度。对于scrypt,您可以选择输出的前N位并将其用作键。

在不使用KDF的情况下,最简单的方法是将密码与24位IV(初始化向量)连接起来,形成RC4密钥。

请注意,WEP将您的密钥和IV组合在一起,以便为数据流加密RC4流;因此,WEP存在许多缺点,使其无法提供足够的数据机密性。您可以按照Wikipedia page链接了解更多信息。

请勿使用加密哈希作为派生密钥。