Python

REST API(python) ハッシュ化ロジック作成 -003-

今回は暗号化の中のMD5でのハッシュ化方法を書いていきます。
※MD5とは。。

※上記リンク先で説明してある通りmd5には脆弱性がすでに検知されいるので実運用に使用するのは避けた方が良いです。。

まずPythonではデフォルトで簡単にハッシュ化をしてくれるモジュールがあるので以下のモジュールを
インポートする必要があります。
import hashlib

後は記載の通りモジュールのメソッドを使用すればなんと一文でmd5のハッシュ化ができてしまいます。
※ハッシュ化するためにはエンコードが必須になることをきおつける必要があります。

from flask import Flask, jsonify, abort, make_response
import hashlib

# Flaskクラスのインスタンスを作成
api = Flask(__name__)
api.config['JSON_AS_ASCII'] = False #日本語の文字化け制御

# GETの実装
@api.route('/md5/<msg>', methods=['GET'])
def test(msg):
    md5 = hashlib.md5(msg.encode('utf-8')).hexdigest() #エンコード必須
    result = { "md5": md5 }
    return make_response(jsonify(result))


# エラーハンドリング
@api.errorhandler(404)
def not_found(error):
    return make_response(jsonify({'error': 'Not found'}), 404)

# ファイルをスクリプトとして実行した際に
# ホスト0.0.0.0, ポート3001番でサーバーを起動
if __name__ == '__main__':
    api.run(host='0.0.0.0', port=3001)