python 盐渍哈希使用 sha1 和 md5 产生意想不到的结果

问题描述 投票:0回答:0

我正在尝试编写一个简单的 python 脚本来对密码列表进行哈希处理,并将生成的哈希值与列表进行比较。我知道这 4 个哈希与列出的密码中的 4 个匹配,这些密码使用 sha1 进行哈希处理,并使用 md5(1)、md5(2)、md5(3)、md5(4) 或 md5(5) 加盐处理。我的代码打印了 50 个唯一的哈希值,但是没有一个匹配,我不明白为什么。任何帮助表示赞赏。

import hashlib

possibleHashes = ["9537935389a343a4fbd831b621b00661b91a5172", "576b1b134cb89b0f8a6c4dd1698479a1151b0e63", "5d7196b530fdd24b8faaaecbaa6b08a29daa1304", "d6acda01abcfe8afd510b96c1d0a1645ea4c40b8"]
possiblePasswords = ["123456", "123456789", "qwerty", "password", "12345", "qwerty123", "1q2w3e", "12345678", "111111", "1234567890"]
hashesFound = 0

def hashPassword(saltNum, password):
    password = password.encode('utf-8')
    encryptedPassword = hashlib.sha1(hashlib.md5(int.to_bytes(saltNum)).digest() + password).hexdigest()
    return encryptedPassword



i = 0
while (i < len(possiblePasswords)):
    j = 0
    print("I: ", i)
    while (j < 5):
        j += 1
        print("J: ", j, " " + hashPassword(j, possiblePasswords[i]))
        if (hashPassword(j, possiblePasswords[i]) in possibleHashes):
            print(possiblePasswords[i], "\n" + hashPassword(j, possiblePasswords[i]))
                
    i += 1
    if i == 10:
        print("\nHash Matches Found: ", hashesFound, "\n")
        quit()
python-3.x hash cryptography md5 sha1
© www.soinside.com 2019 - 2024. All rights reserved.