sqlite实现用户注册登录
时间: 2023-12-27 14:03:51 浏览: 48
可以使用SQLite3作为数据库,实现用户注册和登录的功能。
首先,需要创建一个用户表,包含用户名和密码等信息:
```
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT NOT NULL,
password TEXT NOT NULL
);
```
接下来,实现用户注册功能:
```python
import sqlite3
import hashlib
def register(username, password):
conn = sqlite3.connect('users.db')
cursor = conn.cursor()
# 检查用户名是否已经存在
cursor.execute('SELECT * FROM users WHERE username = ?', (username,))
if cursor.fetchone():
print('该用户名已经存在')
return
# 对密码进行加密
password = hashlib.sha256(password.encode('utf-8')).hexdigest()
# 插入新用户记录
cursor.execute('INSERT INTO users (username, password) VALUES (?, ?)', (username, password))
conn.commit()
print('注册成功')
conn.close()
```
在上述代码中,我们使用了 hashlib 模块对密码进行了 SHA-256 加密,以提高安全性。
接下来,实现用户登录功能:
```python
import sqlite3
import hashlib
def login(username, password):
conn = sqlite3.connect('users.db')
cursor = conn.cursor()
# 对密码进行加密
password = hashlib.sha256(password.encode('utf-8')).hexdigest()
# 检查用户名和密码是否匹配
cursor.execute('SELECT * FROM users WHERE username = ? AND password = ?', (username, password))
if cursor.fetchone():
print('登录成功')
else:
print('用户名或密码错误')
conn.close()
```
在上述代码中,我们同样使用了 hashlib 模块对密码进行了 SHA-256 加密,并且使用了 SQL 的 SELECT 语句来检查用户名和密码是否匹配。
最后,我们可以测试一下完整的注册登录流程:
```python
register('alice', '123456')
login('alice', '123456') # 登录成功
login('alice', '654321') # 用户名或密码错误
```