发布我的密码哈希会有多不安全?
我编写了一个 Python 脚本来帮助我记住我的基本密码(计算机密码、加密备份密码、AppleID 密码和 KeyChain 密码)。
它在里面是硬编码的:
SHA256(MD5(password) + password + MD5(password))
对于每个密码,我都会定期运行它以保持记忆新鲜。
我在 GitLab 上有一个私人仓库,我在其中存储所有通用文件,我想提交这个脚本。我看不出这样做有什么问题,因为据我所知,恢复原始密码是不可能的,但我更愿意请教专家,以确保。
编辑: 我正在添加我的脚本的匿名版本,因此您可以了解它是如何工作的:
from hashlib import md5, sha256
from getpass import getpass
from random import choice
def hash(pwd):
pwd = pwd.encode()
return sha256((md5(pwd).hexdigest()+str(pwd)+md5(pwd).hexdigest()).encode()).hexdigest()
dict = {'pass1': '6eaa49070c467d1edead2f6bc54cf42cdda11ae60d40aef2624a725871d3f452',
'pass2': '240cbc4ba2661b333f9ad9ebec5969ca0b5cf7962a2f18a45c083acfd85dd062',
'pass3': 'b018ed7bff94dbb0ed23e266a3c6ca9d1a1739737db49ec48ea1980b9db0ad46',
'pass3': '7dd3a494aa6d5aa0759fc8ea0cd91711551c3e8d5fb5431a29cfce26ca4a2682'
}
while True:
tipologia, hash_result = choice(list(dict.items()))
while True:
pwd = getpass(f'Password {tipologia}: ')
if hash(pwd) == hash_result:
print('Correct!')
break
else:
print('Wrong!')