ハッシュ関数とは?
ハッシュ関数は、任意の長さの入力データを変換して、決まった長さのハッシュ値を生成します。
ハッシュ関数に同じ入力を与えれば、毎回同じハッシュ値を出力します。
ハッシュ値から入力を求めることは、元データの探索に要する計算量が膨大になるので(計算困難性)、事実上不可能です。
パスワードをそのままデータベースに保存すると、データベースをハッキングされた場合に、パスワードが盗まれてしまうので、入力したパスワードをハッシュ関数に通して、出力されたハッシュ値をデータベースに登録します。
SHA256で文字列をハッシュ化する
ハッシュ関数のアルゴリズムとして、主流で安全性の高い「SHA256」を利用します。
encode()で文字列をバイト列に変換し、ハッシュ関数であるsha256()で求めた値を、hexdigest()で16進形式文字列としてハッシュ値を出力します。
import hashlib #hashlibライブラリ
data="python" #文字列を指定
hs=hashlib.sha256(data.encode()).hexdigest()
hs
コメント