为啥 WPA2-PSK 密钥长度限制为 63 个字符?

Posted

技术标签:

【中文标题】为啥 WPA2-PSK 密钥长度限制为 63 个字符?【英文标题】:Why is the WPA2-PSK key length limited to 63 characters?为什么 WPA2-PSK 密钥长度限制为 63 个字符? 【发布时间】:2013-08-03 02:29:57 【问题描述】:

我想知道为什么 WPA2-PSK 的密码短语限制为 63 个字符。它甚至不是 2 的幂,对我来说看起来很不寻常,但这个数字肯定有更深层次的含义。

【问题讨论】:

加密密钥可以是 8 到 63 个可打印的 ASCII 字符或 64 个十六进制数字。最大长度会产生 256 位强度,即 64 位(每个 8 位)乘以 4 位/位的结果。 【参考方案1】:

PSK 是使用 PBKDF2 密钥派生函数从密码短语派生的,其中 SHA1 作为伪随机函数。密码是 8-63 个字符的 ASCII 编码字符串。

PSK = PBKDF2(PassPhrase, ssid, ssidLength, 4096, 256)

PSK 为 32 字节(256 位),通常显示为 64 个十六进制字符。

根据 802.11i 规范:

密码短语是 8 到 63 个 ASCII 编码字符的序列。 63的极限来了 为了区分密码短语和显示为 64 位十六进制的 PSK 字符。

所以区别只是区分 64 十六进制字符 PSK 和 8-63 字符 ASCII 密码。

【讨论】:

【参考方案2】:

环顾网络,看起来 WPA2 需要 64 个字符。无论如何,每个字符都是 8 位长,这是一个易于存储的数字。我的教育猜测是他们只需要一个截止数字。

【讨论】:

【参考方案3】:

以 0 字节结尾的 63 个字符(在微处理器中编程字符串时很常见)的长度为 64。这是您要查找的数字:它不仅是 2 的幂,而且是8 和 16。

【讨论】:

我之前也是这么认为的,并且确实将其视为迟缓的实施怪癖(添加的 0)但我只是重读了 IEEE 802.11-2012。 您的意思是多个吗? 16*16 是 256,而不是 64。

以上是关于为啥 WPA2-PSK 密钥长度限制为 63 个字符?的主要内容,如果未能解决你的问题,请参考以下文章

localStorage 的密钥长度有限制吗?

转:mysql中intbigintsmallint 和 tinyint的区别与长度的含义

iOS 输入框如何限制字符长度和emoji

WiFi无线渗透 WPA2-PSK密码破解笔记

java密钥长度受限制问题解决

国密算法密码长度才256位二进制,为啥能说是安全的?