Python

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

前回(004)のsha1に加えsha2のハッシュ化に関しても紹介します。
sha2とは

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

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

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

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

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

@api.route('/sha512/<msg>', methods=['GET'])
def test4(msg):
    sha512 = hashlib.sha512(msg.encode('utf-8')).hexdigest() #エンコード必須
    result = { "sha512": sha512 }
    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)