从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()
相关推荐
Q一件事9 分钟前
arcpy选择特定区域进行分析
python
天下·第二12 分钟前
python处理【orc】下载压缩的.zip文件,windows和linux同时适配
linux·windows·python
tgethe13 分钟前
Lambda表达式
java·后端
8***293115 分钟前
Go环境搭建(vscode调试)
开发语言·vscode·golang
songgz21 分钟前
双向流式 JSON 解析架构:并行优化大型文件处理
java·开发语言·json
adfass24 分钟前
桌面挂件时钟/多功能时钟C++
开发语言·c++·算法
Rust语言中文社区30 分钟前
【Rust日报】 walrus:分布式消息流平台,比 Kafka 快
开发语言·分布式·后端·rust·kafka
笨笨没好名字31 分钟前
AI4CAD:用python+creo实现批量参数建模(creo二次开发示例)
数据库·python·microsoft
AI绘画小3332 分钟前
CTF 逆向一脸懵?这篇攻略把破解技巧讲透,新手也能快速上手!
测试工具·web安全·网络安全
z***026034 分钟前
Spring Boot管理用户数据
java·spring boot·后端