Python wpa_passphrase(linux二进制)实现只生成psk的一部分

时间:2017-09-29 22:09:45

标签: passwords linux wireless pbkdf2

wpa_passphrase "testing" "testingpassword"network={
    ssid="testing"
    #psk="testingpassword"
    psk=ae9400eac47807861c32f6b2d52434594fe1f1cbbd5ae0d89d5199ea5e4c79aa
}

我做了一个python脚本,因为这篇维基百科文章告诉我如何计算wpa psk:

https://en.wikipedia.org/wiki/Wi-Fi_Protected_Access#Target_users_.28authentication_key_distribution.29

像这样:

import hashlib, binascii
def wpa_psk(ssid, password):
    dk = hashlib.pbkdf2_hmac('sha1', str.encode(password), str.encode(ssid), 4096)
    return (binascii.hexlify(dk))

print((wpa_psk("testing", "testingpassword")))

输出:b'ae9400eac47807861c32f6b2d52434594fe1f1cb'

这是wpa_passphrase工具生成的psk的一部分。缺少什么?

3 个答案:

答案 0 :(得分:2)

现在可能为时已晚,我遇到了这个问题,您可以这样做:

order by

输出为

msg_id

答案 1 :(得分:1)

唯一缺少的是调用hashlib.pbkdf2_hmac()时指定dklen参数。此参数应设置为32。

import hashlib, binascii
def wpa_psk(ssid, password):
    dk = hashlib.pbkdf2_hmac('sha1', str.encode(password), str.encode(ssid), 4096, 32)
    return (binascii.hexlify(dk))

print((wpa_psk("testing", "testingpassword")))

答案 2 :(得分:0)

经过长时间的互联网搜索,我终于找到了psk.py。能够从PSKSSID计算Passphrase。请检查: - )