python字符串相同但不同?

2024-09-30 20:21:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我不知道为什么这不是我想要的工作方式。我有一个文本文件,其中包含一些常用密码(例如,password,00001111),我想使用salt对它们进行散列。然而使用

a = hashlib.sha3_256('AlwaysUseADifferentSalt00001111'.encode('utf-8')).hexdigest()
print(a)
>>>6008992e30a56dbab6825064078ca585ad1b981a4c461ffb46dbd088377ac3ae

salt = 'AlwaysUseADifferentSalt'
password = '00001111'
key = salt + password
a = hashlib.sha3_256(key.encode('utf-8')).hexdigest()
print(a)
>>>d6fdd92f39dd760bd372c035f76a7253b58d176b3f1e74d293218d2801d1b701

给我不同的结果,即使key = AlwaysUseADifferentSalt00001111

编辑: 为了澄清一些事情,我试图用salt和给定的密码重建一个散列

import hashlib
counter = 1

sha3_pass = 'b998c2aeb78ed8948976a7c8e3317b16ba8a7ad45764520a672c684929f51f90'
sha3_file = open("Top12Thousand.txt")
salt = 'AlwaysUseADifferentSalt'

for password in sha3_file:
    key = salt + password
    hash_obj = hashlib.sha3_256(key.encode('utf-8')).hexdigest()
    #print("Trying Password %d : %s " % (counter,password.strip()))
    counter += 1

    if hash_obj == sha3_pass:
        print("\nPassword Found!!! Password Is : %s " % password)
        break
    #else:
        #print("\n password Not Found")

使用来自https://raw.githubusercontent.com/berzerk0/Probable-Wordlists/master/Real-Passwords/Top12Thousand-probable-v2.txt的列表 因为我不明白为什么脚本不起作用,所以我检查了salt值,如果我在看到一些差异的地方插入一个完整的字符串,我会得到这些值


Tags: key密码counterpasspasswordutfencodefile
1条回答
网友
1楼 · 发布于 2024-09-30 20:21:28

这应该起作用:

import hashlib
counter = 1

sha3_pass = 'b998c2aeb78ed8948976a7c8e3317b16ba8a7ad45764520a672c684929f51f90'
sha3_file = open("testfile.txt")
salt = 'AlwaysUseADifferentSalt'

for password in sha3_file:
    key = salt + password.strip()
    hash_obj = hashlib.sha3_256(key.encode('utf-8')).hexdigest()
    #print("Trying Password %d : %s " % (counter,password.strip()))
    counter += 1

    if hash_obj == sha3_pass:
        print("\nPassword Found!!! Password Is : %s " % password)
        break
    #else:
        #print("\n password Not Found")

如您所见,唯一的更改是在第9行删除密码(key = salt + password.strip()

相关问题 更多 >