内容正文:
3.4 加密与解密
本节内容按2课时设计。
第一课时
教学重难点
【教学重点】会分析生活中由密码引起的数据安全问题,理解对数据进行保护的意义。
【教学难点】用穷举法破解密码。
【教学过程】
一、引入
1.学生预习,阅读第77页“任务一 解开网站账号被盗之谜”之“活动1 防范‘盗窃’行为”,填写第78页的表3.4.1。
2.教师检查,并评讲填写情况,引出数据安全、密码的话题。
表3.4.1 密码盗窃与防盗分析表
盗窃方式
防盗窃措施
肩窥方式
我们可以在输入密码时遮挡自己的操作过程,防止别人偷看密码信息;或者确定环境安全后再进行操作
字典破解
密码不要用生日、姓名及拼音缩写、手机号、简单数字组合、单词、身份证号、用户Id
暴力破解
同时包含大小写字母、数字、特殊符号,不少于8个字符
二、密码
密码是指用来核对用户ID以验证用户就是本人的一组字符。
活动2设置安全密码
打开教科书配套资源中的“数据安全性测试.py”,运行并测试穷举搜索一个5位、7位和9位的数字密码,分别需要多长时间,填写表3.4.2。(详见配套资源“数据安全性测试(有界面).fld”和“数据安全性测试(有界面).py”)
表3.4.2 穷举搜索密码需要的时间
密码长度
密码值
破解时间
5位
12567
1.0毫秒
98302
15.6毫秒
7位
9位
实现穷举搜索的自定义函数jiemi()的程序代码如下:
def jiemi():
d1=datetime.datetime.now() #获取当前系统时间d1
p=int(varin.get()) #获取输入文本框的数字密码
for i in range(0,p+1): #从0循环到正确密码数值
if i==p: #如果密码相同
d2=datetime.datetime.now() #获取当前系统时间d2
d=d2-d1 #取得时间差
#在输出文本框中显示解密用时
varout.set(str(d.seconds)+"秒"+str(d.m