BruteForce函数SHA256哈希

2024-05-04 21:11:10 发布

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

我已经制作了一个python程序,可以将您的密码散列到sha256

import hashlib


u = input("Write 3 upper-case letters: ").upper()
d = int(input("Write 4 digits from 0-9 "))

testhashed = u+str(d)


key = hashlib.sha256(testhashed.encode())

print("function 1" +key.hexdigest())

但我真的不知道如何制作蛮力函数。如果有人能指导我,我将不胜感激


Tags: keyfromimport程序密码inputupperwrite
1条回答
网友
1楼 · 发布于 2024-05-04 21:11:10

您的代码确实存在一些问题。例如,没有任何内容强制您只输入3个字母,甚至强制这些字母为字母。此外,您还可以输入更多或更少的4位数字。无论如何,这是一个简单的暴力强迫的例子。它只是检查你所有的选项,试图匹配散列。请注意,至少可以说这是次优的,但是,在Python中运行蛮力并不是一个非常明智的想法,所以这已经足够好了。请注意,我选择的测试密码接近暴力强制范围的开始,否则您将永远等待此操作成功

import hashlib, itertools

def brute_force(hash):
    letters = [chr(n) for n in range(ord('A'), ord('Z'))]
    digits = [chr(n) for n in range(ord('0'), ord('9'))]

    for part1 in itertools.product(letters, repeat=3):
        for part2 in itertools.product(digits, repeat=4):
            password_try = ''.join(part1 + part2)
            if hashlib.sha256(password_try.encode()).hexdigest() == hash:
                return password_try


test_password = "BOO8000"
key = hashlib.sha256(test_password.encode()).hexdigest()
print("Hash: %s" % key)
print("Brute-forcing...")
recovered_key = brute_force(key)
print("Brute-force result: %s" % recovered_key) 

相关问题 更多 >