检查Moodle的哈希密码

时间:2018-11-04 07:23:54

标签: python hash cryptography moodle

Moodle 将散列密码以以下格式保存在用户表中:

  

如果存储的密码是:

     

<input id="full_name" type="text" class="form-control" name="name" placeholder="John Doe" value=""> <input id="phone_number" type="text" class="form-control" name="phone" placeholder="+1(444)444-44444" value="">
  然后:
  $2y$10$UB6vKrpw227eqVXj2PiPou9c0eRtxsdU02fo9.wc3VtsA2FI.gS6a =使用的哈希算法的ID(crypt_blowfish),以美元符号括起来。
  $2y$ =使用该算法(两位数)后跟一个美元符号的费用。
  10$ =随机生成的安全盐(22个字符)。
  UB6vKrpw227eqVXj2PiPou =哈希(31个字符)。

我在文本中输入了普通密码。我不知道如何使用Python进行检查。

1 个答案:

答案 0 :(得分:2)

只需使用bcrypt即可完成

pip install bcrypt

然后只需调用checkpw()函数即可:

import bcrypt

hashed = b'$2y$10$UB6vKrpw227eqVXj2PiPou9c0eRtxsdU02fo9.wc3VtsA2FI.gS6a'

password = input('Enter password:').encode()
if bcrypt.checkpw(password, hashed):
    print('Correct password entered!')
else:
    print('Password is wrong!')

请注意,bcrypt使用的是字节而不是字符串,这就是为什么用户输入必须通过.encode()运行的原因。