2016-08-13 11 views
0

なぜこのpasslibハッシュスクリプトはスクリプトを実行するたびに新しい結果を作成しますか?私はパスワードをハッシュするには、以下の<a href="http://pythonhosted.org/passlib/#welcome" rel="nofollow">script from the passlib docs</a>を使用してい

# import the hash algorithm               
from passlib.hash import sha256_crypt            

# generate new salt, and hash a password 
hash = sha256_crypt.encrypt("toomanysecrets") 
print hash # <== WHY IS THIS ALWAYS A DIFFERENT STRING? 
# verifying the password 
print sha256_crypt.verify("toomanysecrets", hash) # Outputs "True" 
print sha256_crypt.verify("joshua", hash) # Outputs "False" 

sha256_crypt.verifyは「toomanysecrets」など、複数の異なるハッシュを確認することができるだろうことを奇妙に思える - なぜ、このパスワードのためのちょうど1つのハッシュはありません?

+0

'generate new salt' –

答えて

2

ハッシュ結果は入力によって異なり、saltです。 salt - ランダムに生成された値で、出力文字列にハッシュの結果とともに含まれます。そのため、sha256_crypt.encryptの出力文字列はそれぞれランダムに見えますが、パスワード検証機能は保持されます。

関連する問題

 関連する問題