Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python bcrypt同一字符串的不同哈希?_Python_Hash_Bcrypt_Password Hash - Fatal编程技术网

Python bcrypt同一字符串的不同哈希?

Python bcrypt同一字符串的不同哈希?,python,hash,bcrypt,password-hash,Python,Hash,Bcrypt,Password Hash,我在mysql中创建了具有相同密码的用户,然后此代码段使用bcrypt将纯文本密码更改为哈希。为什么同一字符串的哈希值不同 import mysql.connector import bcrypt mydb = mysql.connector.connect( host="localhost", user="root", password="........", database="brian

我在mysql中创建了具有相同密码的用户,然后此代码段使用bcrypt将纯文本密码更改为哈希。为什么同一字符串的哈希值不同

import mysql.connector
import bcrypt

mydb = mysql.connector.connect(
    host="localhost",
    user="root",
    password="........",
    database="briandb",
)
mycursor = mydb.cursor()

for user in ["bob", "alice"]:
    password = "ttt"
    print(password)
    hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt())
    print(hashed)
    mycursor.execute(
        f'UPDATE users set password = "{hashed}" where user = "{user}"'
    )
    mydb.commit()

您已经发现了健壮的密码散列的一个关键特性:每次对密码进行散列,都会得到不同的结果。为什么?

每次使用不同的随机盐(来自
bcrypt.gensalt()

为什么这很重要


如果一个网络窃贼闯入你的系统并偷走你的
用户表,他们会得到你的加密密码。当哈希正确完成时,很难恢复未加盐的密码。接下来,如果他们闯入银行系统并窃取他们的散列密码,我们不希望他们能够得出结论,即某些用户在两个系统上拥有相同的密码。如果他们能猜到这一点,他们就会知道针对哪些用户进行更深层次的网络犯罪。

您已经发现了健壮的密码散列的一个关键特性:每次对密码进行散列,都会得到不同的结果。为什么?

每次使用不同的随机盐(来自
bcrypt.gensalt()

为什么这很重要


如果一个网络窃贼闯入你的系统并偷走你的
用户表,他们会得到你的加密密码。当哈希正确完成时,很难恢复未加盐的密码。接下来,如果他们闯入银行系统并窃取他们的散列密码,我们不希望他们能够得出结论,即某些用户在两个系统上拥有相同的密码。如果他们能猜到这一点,他们就会知道针对哪些用户进行更深层次的网络犯罪。

因为你每次都在创造新的机会。因为你每次都在创造新的机会。