从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()
相关推荐
再见晴天*_*28 分钟前
SpringBoot 中单独一个类中运行main方法报错:找不到或无法加载主类
java·开发语言·intellij idea
lqjun08272 小时前
Qt程序单独运行报错问题
开发语言·qt
Hello_Embed2 小时前
STM32HAL 快速入门(二十):UART 中断改进 —— 环形缓冲区解决数据丢失
笔记·stm32·单片机·学习·嵌入式软件
咸甜适中2 小时前
rust语言 (1.88) 学习笔记:客户端和服务器端同在一个项目中
笔记·学习·rust
酷飞飞3 小时前
Python网络与多任务编程:TCP/UDP实战指南
网络·python·tcp/ip
Magnetic_h3 小时前
【iOS】设计模式复习
笔记·学习·ios·设计模式·objective-c·cocoa
hdsoft_huge4 小时前
Java & Spring Boot常见异常全解析:原因、危害、处理与防范
java·开发语言·spring boot
风中的微尘4 小时前
39.网络流入门
开发语言·网络·c++·算法
研梦非凡4 小时前
ICCV 2025|从粗到细:用于高效3D高斯溅射的可学习离散小波变换
人工智能·深度学习·学习·3d
数字化顾问4 小时前
Python:OpenCV 教程——从传统视觉到深度学习:YOLOv8 与 OpenCV DNN 模块协同实现工业缺陷检测
python