前回(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)

