パスワードなどの機密データを保存するときはハッシュ化をして元のパスワードを取得できないようにすることでセキュリティが向上します。
そこで、Pythonでパスワードのハッシュ化を行う方法を紹介します。
Pythonには、ハッシュ関数を提供するhashlibライブラリがあり、パスワードのハッシュ化には、sha256、sha512、md5などのハッシュ関数が使用されます。
コード例
import hashlib import os password = "password123" salt = os.urandom(32) # ランダムなバイト列を生成 # ソルトとパスワードを連結してハッシュ値を生成 hash_value = hashlib.sha256(salt + password.encode()).hexdigest() print(f"Salt: {salt.hex()}") print(f"Hash value: {hash_value}")
上記の例では、os.urandom(32)
でランダムなバイト列を生成して、パスワードと連結した後にhashlib.sha256()
でハッシュ化しています。
最終的なハッシュ値は、hexdigest()
で16進数表記に変換されます。また、ソルトのバイト列はhex()
で16進数表記に変換して表示しています。