我喜欢使用唯一键散列电子邮件(只是地址)的方法。所以流程将是下一个:
现在,我了解hashlib
及其基本实现:
import hashlib
email = 'email@domain.com'
key = '1234'
hash_object = hashlib.sha256(email)
print(key + hash_object.hexdigest())
现在,我不知道这个实现有多安全,因为它始终在我的哈希前添加key
。
我的愿望是拥有一个唯一的密钥(将存储在某个地方),并始终使用它散列电子邮件。更多,我不想解码那个哈希。我只对编码感兴趣。
有什么想法吗?
答案 0 :(得分:3)
在哈希前添加密钥不会做任何事情。它不会提高安全性,因为你没有使用普通密码(没有盐),所以它很容易暴力破解。
你想要的是添加一个随机 salt 。然后你可以做以下
import random, hashlib
from string import ascii_letters
salt= ''.join(random.shuffle(ascii_letters))
hash=hashlib.sha512(salt+':'+password).hexdigest()
当然,您的目标是在密码的前面或末尾添加随机字母组合,这样您就可以以任何其他方式生成它,而不一定是shuffle
整个字母表。