hashlibモジュールでセキュアハッシュ(メッセージダイジェスト)を作成し、digestメソッドを使うとバイナリデータを返される。hexdigestメソッドを使えば[0-9a-f]で表した文字列を取得できるが、[f-zA-Z]の文字が使われていない分、長い文字列となる。
#!-*- coding:utf-8 -*-
import hashlib
md5 = hashlib.new('md5')
md5.update('この文字列のハッシュを取得します。')
print repr(md5.digest())
print md5.hexdigest()
'1,\xb8-\x1b\x83\xc2P(C\xa8h\xa8\x1a\xa0/' 312cb82d1b83c2502843a868a81aa02f
そこでバイナリデータを[a-zA-Z0-9]で表した文字列に変換する関数とその逆変換を行う関数を作ってみた。