1. ホーム
  2. python

[解決済み] Pythonでパスワードのソルトとハッシュ化

2022-09-15 19:19:40

質問

このコードは、ソルトでパスワードをハッシュ化することになっています。 ソルトとハッシュ化されたパスワードは、データベースに保存されます。 パスワード自体は保存されません。

この操作の機密性を考えると、私はすべてが順調であることを確認したいと思いました。

import hashlib
import base64
import uuid

password = 'test_password'
salt     = base64.urlsafe_b64encode(uuid.uuid4().bytes)


t_sha = hashlib.sha512()
t_sha.update(password+salt)
hashed_password =  base64.urlsafe_b64encode(t_sha.digest())

どのように解決するのですか?

EDITです。 この回答は間違いです。SHA512の1回の繰り返しは 速い であり、パスワードハッシュ関数として使用するには不適切です。代わりに、ここにある他の回答の1つを使用してください。


私には問題ないように見えます。しかし、私はあなたが実際にbase64を必要としないことを確信しています。あなたはこれを行うことができます。

import hashlib, uuid
salt = uuid.uuid4().hex
hashed_password = hashlib.sha512(password + salt).hexdigest()

問題が生じないのであれば、ソルトとハッシュ化されたパスワードを16進文字列ではなく生のバイトとして保存することで、データベースへの保存効率をわずかに向上させることができます。これを行うには hexbyteshexdigestdigest .