Yura YuLife

ITエンジニアの覚え書き。

Pythonでmd5やsha256などのハッシュ値を求める

Pythonで引数に入力された文字列のハッシュ値を求めるスクリプトを作成してみました。

hash.py

#!/usr/bin/python
# -*- coding: utf-8 -*-

import hashlib


def calc_hash(string):
    u'''入力文字列のハッシュ値を求めて辞書型で出力する'''
    hash_dict = {
        'md5': hashlib.md5(string).hexdigest(),
        'sha1': hashlib.sha1(string).hexdigest(),
        'sha224': hashlib.sha224(string).hexdigest(),
        'sha256': hashlib.sha256(string).hexdigest(),
        'sha384': hashlib.sha384(string).hexdigest(),
        'sha512': hashlib.sha512(string).hexdigest(),
    }
    return hash_dict

if __name__ == '__main__':
    import sys
    string = sys.argv[1]
    hash_dict = calc_hash(string)
    for key, value in hash_dict.items():
        print '%s\t%s' % (key, value)

helloのハッシュ値を求めてみた結果。

$ python hash.py hello
md5      5d41402abc4b2a76b9719d911017c592
sha1     aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
sha224   ea09ae9cc6768c50fcee903ed054556e5bfc8347907f12598aa24193
sha256   2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
sha384   59e1748777448c69de6b800d7a33bbfb9ff1b463e44354c3553bcdb9c666fa90125a3c79f90397bdf5f6a13de828684f
sha512   9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043