login登陆验证代码
时间: 2023-06-18 20:04:32 浏览: 55
以下是一个简单的 login 登陆验证的代码示例:
```python
username = input("请输入用户名:")
password = input("请输入密码:")
if username == "admin" and password == "123456":
print("登陆成功!")
else:
print("用户名或密码错误!")
```
这个代码示例中,用户需要输入用户名和密码,然后程序会判断用户名和密码是否与预设的值一致。如果一致,则登陆成功,否则提示用户名或密码错误。实际的登陆验证过程可能会更加复杂,比如需要检查用户名和密码是否符合规则、是否在数据库中存在等等。
相关问题
登陆验证代码
以下是一个简单的登陆验证代码,使用了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接口。
shrio登录验证代码
以下是基于Shiro的登录验证代码示例:
```java
// 获取Subject对象
Subject currentUser = SecurityUtils.getSubject();
// 封装用户登录信息
UsernamePasswordToken token = new UsernamePasswordToken(username, password);
try {
// 调用Subject的login方法进行登录验证
currentUser.login(token);
// 登录成功后的逻辑处理
} catch (UnknownAccountException uae) {
// 用户名不存在
} catch (IncorrectCredentialsException ice) {
// 密码不正确
} catch (LockedAccountException lae) {
// 用户被锁定
} catch (ExcessiveAttemptsException eae) {
// 登录失败次数过多
} catch (AuthenticationException ae) {
// 其他登录异常
}
```
在上述代码中,首先获取了Shiro的`Subject`对象,然后通过传入的用户名和密码创建了一个`UsernamePasswordToken`对象,接着调用`Subject`的`login`方法进行登录验证。如果登录成功,则执行登录成功后的逻辑处理;否则会抛出不同的异常,根据不同的异常类型进行相应的处理。