Pythonでhashlibを用いてsha1を計算してみます。
sha1は、「SHA-1 (Secure Hash Algorithm 1)」であり、暗号解読されたハッシュ関数であり、Secure Hash Algorithm(SHA)ファミリーの4つのアルゴリズムのうちの1つです。現在でも、広く使用され、入力から160ビット(20バイト)のハッシュ値(通常40桁の16進数で表される)を生成。なお、SHA-1は、米国国家安全保障局によって設計され、米国連邦情報処理規格にもなっている。
今回はhashlibモジュールを用います。このライブラリ・モジュールは、Pythonの標準ライブラリですので、事前にインストールする必要はありません。
■Python
今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)
■hashlibを用いてsha1を計算する
では、hashlibを用いてsha1を計算するスクリプトを書いていきます。
■コード
import hashlib sha1 = hashlib.sha1() data = "これは日本語の文字列です" sha1.update(data.encode("utf-8")) print(sha1.hexdigest())
importでhashlibモジュールを呼び出します。その後にsha1という変数を定義し、hashlib.sha1()を用いて、SHA-1をsha1変数に格納します。格納後、dataという変数を定義し、その中にsha1を計算する情報を格納します。今回は日本語の文字列を格納します。格納後、update()を用いて、sha1オブジェクトをbytes-like objectで更新します。この時にdata変数内をutf-8(文字コード)に変換し、更新を行います。更新されたことでsha1を計算することができました。更新を行った後に、hexdigest()を用いて16進形式文字列を返します。返された文字列をprint()で出力します。
■実行・検証
このスクリプトを「hash_algorithm01.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。
実行してみると、hashlibモジュールやupdate()を用いて、今回指定した文字列のsha1を計算し、結果を出力させることができました。
コメント