内容正文:
信息系统专题
班级 姓名
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)在划线处填入正确的代码。
2.【202302名校协】市场上有出售智能花盆或智能盆栽等产品,这些产品大多能实时监测植物生长状态,通过网络获取花盆的环境信息,并对植物进行远程浇灌。小王利用micro:bit,结合土壤湿度传感器等,将家庭中常见的盆栽改造成智能盆栽。
(1)在搭建该信息系统前,需要进行前期准备的步骤依次为 。
①开发模式选择 ②概要设计 ③需求分析 ④详细设计 ⑤可行性