内容正文:
纯信息系统专题二
班级 姓名
1.【202212嘉兴】小胡使用Python为某校开发了信息管理系统,登录该系统使用如图a所示的页面进行身份认证,密码由6位字母、数字、特殊符号等ASCII码字符组成。为了增强安全性,密码经过异或加密后再存入数据库。如图b所示,数据表中username保存的是用户名,password保存的是加密后的密码,例如用户Sam的密码为“123456”,密钥key为“t6f$Hk”,加密后保存至数据库的值为字符串“069004085016125093”。程序运行界面和部分程序代码如下:
import sqlite3
from flask import Flask, request, render_template
key='t6f$Hk' # 密钥
a=Flask(__name__)
def encode(password): #对password加密
s = ""
for i in range(len(key)):
x = str(ord(key[i]) ^ ord(password[i])) # “^”为异或运算符
s+=('000'+x)[-3:] #x不足3位补前导 0
return s
#用户名及加密后的密码均已保存至数据库中,代码略
①__________________ #设置主页面路由
def index():
return render_template("login.html") #显示登录页面
#用户单击登录按钮后执行以下视图函数
@a.route("/login")
def login():
usr=request.args.get("username")
pwd=request.args.get("password")
if usr=="" or pwd=="" or len(pwd)!=6:
return "输入不正确,请重新输入!"
conn=sqlite3.connect("school.db")
cur=conn.cursor()
sql=f"select * from users where username='{usr}' and password='{_____②_____}'"
cur.execute(sql) ; users=cur.fetchall()
cur.close() ; conn.close()
if users:
return '登录成功!'
else:
return '登录失败!'
if __name__=="__main__":
app.run('127.0.0.1',5000)
请回答下列问题:
(1)设计该系统的前期准备工作中,根据系统的功能要求,选择采用 B/S 架构,这一过程属于
(单选,填字母:A.需求分析 B.开发模式的选择 C.详细设计)。
(2)下列说法正确的是 (多选):
A访问该网站首页的地址为:http://127.0.0.1
B该系统的数据保存在sqlite数据库users中
C该系统采用 B/S 架构,用户名和密码保存在school数据表中
D为加强系统安全性,可将用户密码保存至数据库中时采用非对称加密算法
E使用Flask编写Web应用的流程为:导入框架模块、创建应用实例、编写路由和视图函数、启动Web应用
(3)在划线处填入正确的代码。
学科网(北京)股份有限公司
$纯信息系统专题二
班级
姓名
1.【202212嘉兴】
(1)B
(2)DE
(3)
①a.route("/")
②encode(pwd)