从0开始python学习-54.python中flask创建MD5和base64加密校验的接口

MD5加密接口

python 复制代码
import hashlib
from flask import Flask, request, jsonify

# 初始化一个flask的对象
app = Flask(__name__)

# MD5加密校验数据请求
# 定义用户数据
user_data = [
    {"username": "admin1", "password": "E10ADC3949BA59ABBE56E057F20F883E"}, # 123456
    {"username": "admin2", "password": "C33367701511B4F6020EC61DED352059"} # 654321
]

# 请求接口-form
@app.route("/post_md5",methods=['post'])
def post_MD5():
    username = request.form.get('username')
    password = request.form.get('password')

    if not username or not password:
        return jsonify({'error': '用户名和密码是必填项'})

    # 计算密码的MD5哈希值--注意user_data中的password是大写,所以这里需要转成大写
    hash_pwd = hashlib.md5(password.encode()).hexdigest().upper()

    # 遍历用户数据,匹配用户名和密码进行校验
    for user in user_data:
        if user['username'] == username and user['password'] == hash_pwd:
            return jsonify({'message': '登录成功'})

    return jsonify({'error': '用户名或密码不正确'})

if __name__ == '__main__':
    app.run()

base64加密接口

python 复制代码
# 初始化一个flask的对象
app = Flask(__name__)

# 定义用户数据
user_data2 = [
    {"username": "admin1", "password": "MTIzNDU2"}, # 123456
    {"username": "admin2", "password": "NjU0MzIx"} # 654321
]
@app.route('/post_base64', methods=['POST'])
def post_base64():
    username = request.json.get('username')
    password = request.json.get('password')

    if not username or not password:
        return jsonify({'error': '用户名和密码是必填项'})


    # 进行 base64 编码
    encoded_password = base64.b64encode(password.encode()).decode()

    # 遍历用户数据,查找匹配的用户名和密码
    for user in user_data2:
        if user['username'] == username and user['password'] == encoded_password:
            return jsonify({'message': '登录成功'})

    return jsonify({'error': '用户名或密码不正确'})

if __name__ == '__main__':
    app.run()
相关推荐
雾岛听蓝5 分钟前
Qt开发核心笔记:从HelloWorld到对象树内存管理与坐标体系详解
开发语言·经验分享·笔记·qt
無限進步D4 小时前
Java 运行原理
java·开发语言·入门
是苏浙4 小时前
JDK17新增特性
java·开发语言
不光头强4 小时前
spring cloud知识总结
后端·spring·spring cloud
花酒锄作田5 小时前
企业微信机器人与 DeepAgents 集成实践
python·mcp·deepagents
GetcharZp7 小时前
告别 Python 依赖!用 LangChainGo 打造高性能大模型应用,Go 程序员必看!
后端
阿里加多7 小时前
第 4 章:Go 线程模型——GMP 深度解析
java·开发语言·后端·golang
likerhood8 小时前
java中`==`和`.equals()`区别
java·开发语言·python
小小李程序员8 小时前
Langchain4j工具调用获取不到ThreadLocal
java·后端·ai