登陆验证代码
时间: 2023-06-22 07:05:19 浏览: 63
以下是一个简单的登陆验证代码,使用了Python Flask框架和SQLite数据库:
```python
from flask import Flask, request, jsonify, make_response
import sqlite3
import uuid
import hashlib
app = Flask(__name__)
# 创建数据库连接
conn = sqlite3.connect('users.db')
c = conn.cursor()
# 创建用户表
c.execute('''CREATE TABLE IF NOT EXISTS users
(id INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT NOT NULL UNIQUE,
password TEXT NOT NULL);''')
# 关闭数据库连接
conn.close()
@app.route('/register', methods=['POST'])
def register():
# 获取客户端传来的用户名和密码
username = request.json.get('username')
password = request.json.get('password')
# 将密码进行加密处理
salt = uuid.uuid4().hex
hashed_password = hashlib.sha512(password.encode('utf-8') + salt.encode('utf-8')).hexdigest()
# 将用户名和加密后的密码存入数据库
conn = sqlite3.connect('users.db')
c = conn.cursor()
c.execute("INSERT INTO users (username, password) VALUES (?, ?)", (username, hashed_password))
conn.commit()
conn.close()
return make_response(jsonify({'message': '注册成功!'}), 200)
@app.route('/login', methods=['POST'])
def login():
# 获取客户端传来的用户名和密码
username = request.json.get('username')
password = request.json.get('password')
# 在数据库中查找用户名对应的密码
conn = sqlite3.connect('users.db')
c = conn.cursor()
c.execute("SELECT * FROM users WHERE username=?", (username,))
result = c.fetchone()
conn.close()
# 如果查找到了用户记录,则验证密码
if result:
db_password = result[2]
salt = db_password[:64]
hashed_password = hashlib.sha512(password.encode('utf-8') + salt.encode('utf-8')).hexdigest()
if db_password == salt + hashed_password:
return make_response(jsonify({'message': '登录成功!'}), 200)
return make_response(jsonify({'message': '用户名或密码错误!'}), 401)
```
以上代码实现了用户注册和登陆功能,密码采用了加盐哈希处理,可以有效保护用户的账户安全。在使用时,可以通过发送POST请求,将用户名和密码以JSON格式传递给/register或/login接口。