目次
1.環境
- Debian7.11
- Python2.7.3
2.hashlibとは
pythonで提供されているデータをハッシュ化するための標準モジュールです。
SHA1、SHA224、SHA256、SHA384、SHA512、RSA、MD5などのアルゴリズムを利用して暗号化することができます。
今回はこのhashlibを用いてパスワードなどをハッシュ化してみようと思います。
サービスなどで利用するパスワードをDBに保存する際にハッシュ化したものを保存するのでそこらへんのTipsとして情報提供できればと思います。
3.sha256関数を使ってパスワードの暗号化を行ってみる
パスワードに対して、一意であるidを連結して、IDとパスワードがわかれば同じハッシュ値を生成できるようにしています。
例えば、このハッシュ値をログインアカウント登録時にDBに保存しておいて、ログイン時にIDとパスワードを受け取ってハッシュ化すれば、
登録時のハッシュと同じ値が生成できるのでそのユーザーである判断ができるといったことが可能になります。
3-1.サンプルコード
hash_sample.py
#_*_ coding: utf-8 _*_ import hashlib, binascii def safty_password(id, password): hash = hashlib.sha256() hash.update(id + password) return hash.hexdigest() id = b'sassy' password = b'test1234' print safty_password(id, password)
3-2.実行結果
以下のような感じでIDとパスワードをハッシュに変換することができます。
補足としてSHA256で変換した場合の値の長さは64桁になります。
これはIDとパスワードを連結した長さがどれも異なっていても、一律64桁です。
root@dev:~/tmp/python# python hash_sample.py b61e8a239a3f6c12ed8e73921baf2fa1f39a9965ee0c5735a824356f0c709e76
以上