我的哈希和加盐是否正确?

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

我的哈希和加盐正确吗?

密码和盐是否应该在散列之前连接在一起?

如果用户创建密码“Banana”,并且将盐“ABC123”添加到密码末尾,则您将得到“BananaABC123”。然后该密码将被散列。因此,当用户尝试使用纯文本登录时“香蕉”..数据库是否知道从末尾删除 ABC123 盐(用户不知道)并允许他登录?

或者我完全误解了这一点?我对此很陌生。

import hashlib
import os

def hash(password):
    bytes = password.encode('utf-8')
    object = hashlib.sha256(bytes)
    return object.hexdigest()

user_input = input()

random = os.urandom(15)

stored = random

password = (f"{user_input}{stored}")

hash = hash(password)

print(hash)
python passwords password-hash hashlib
1个回答
0
投票

通常,当服务器检查给定的密码时,它会对密码运行相同的操作,即连接盐并计算哈希值。

盐避免比较不同站点的破解数据库以查看是否出现相同的哈希值(用于查找常用密码)。 IE。当使用不同的秘密盐时,相同的密码具有不同的哈希值。

例如,Django 将秘密盐(除了算法和附加参数以及密码哈希之外)存储在数据库中。请参阅

Django 中的密码管理

© www.soinside.com 2019 - 2024. All rights reserved.