内容正文:
加密与解密
第一课时
第 3 单元
3.4
学习目标
★理解数据加密和解密的概念及原理。
了解数据加密的历史。
会用Python实现简单的加密算法。
会分析生活中由密码引起的数据安全问题, 理解对数据进行保护的意义。
活动1 防范 “盗窃“ 行为
不少人有密码被盗的经历, 这往往会导致个人信息泄露, 甚至是财产损失。 你是否有使用账号、密码的经验?请你与同学交流、
盗窃方式 防盗措施
肩窥方式 我们可以在输入密码时遮挡自己的操作过程,防止别人偷看密码信息;或者确定环境安全后再进行操作
字典破解 密码不要用生日、姓名及拼音缩写,手机号等
暴力破解 密码同时包含大小写字母、数字、特殊符号,不少于8位
密码
密码是指用来核对用户ID以验证用户就是本人的一组字符。
活动2 设置安全密码
请你打开教科书配套资源中的 “数据安全性测试.py”‘运行并测试穷举搜索一个5位、 7位和9位的数宇密码, 分别需要多长时间, 然后填写下表。
密码长度 密码值 破解时间
5位 12567 1.0毫秒
98302 15.6毫秒
7位
9位
想一想, 如果密码中还有字母, 破解的时间会变长吗?
Def jiemi():
dl=datetime.datetime.now() #获取当前系统时间d1
p=int(varin. get()) #获取输入文本框的数字密码
for i in range(0,p+l): #从0循环到正确密码数值
if i==p: #如果密码相同
d2=datetime.datetime.now() #获取当前系统时间d2
d=d2—dl #取得时间差
#在输出文本框中显示解密用时
varout.set(str(d.seconds)+"秒"+str(d.mic roseconds/1000)+”毫秒" )
创建安全密码的一般技巧
使用长度不少千8个字符的密码。密码长度越长越不容易被破解。
尽量使用字母、数字和特殊字符(如$、#)相结合的密码。
不要使用电话号码、身份证号码或生日等信息作为密码。
不要使用字典中能找到的词语作为密码, 即使是字母次序颠倒过来的常用词语也不可以。
不要使用整个用户ID或用户ID的一部分作为密码。
“2”要
“3”不
要
安全密码:
1%58*34A#24C
36$&248AEFs&
不安全密码:
13201230895
20070908
105364759
在古代,人们是怎样秘密传送数据的呢?请你利用网络搜索相关 信息, 了解数据加密的发展历史, 并完成下表。
活动1 古老的 “隐身术”
时间 加密方式
683年 拆字法,将明文中的文字进行组合生成新的字,即为密文,比如十二月合起来为“青”。
加密
自古以来,在管理国家、指挥战斗或是经济来往中,都需要高效、安全的数据通信系统。古人就已会用很多办法将数据伪装起来,使得只有联络好的数据接收者才能读懂。 比如,将数据刻在木板上,然后再覆上一层蜡,使其成为一个看上去很普通的刻写板;使用一套尺寸不等、形状各异的 “阴符" ,每支符都表示特定的含义等。这些都是数据的加密。
加密就是将原始信息(数据)隐匿起来, 使之在缺少特殊信息(数据)时不可读。原始信息(数据)称为明文, 加密后的信息(数据)称为密文。将密文还原成明文的过程称为解密(或解码)。
活动2 揭秘 “隐身术”
1.1 我们身边的数据
恺撒在征服高卢、 袭击日耳曼和不列颠的多次战斗中频繁使用 加密技术。恺撒只是简单地将明文中的每一个字母用字母表中该字母后的第3个字母替换。 例如, 将明文中的a用d替换,b用e替换, ……z用c替换, 这就是恺撒密码。
Def CaesarCiphet()
判断c[i]是否超出英文字母的范围
将位于x至z或X至Z的字母移3位
将位于a至w或A至W的字母移3位
1.1 我们身边的数据
打开教科书配套资源中的"恺撒密码.py" ,根据流程图,将程序补充完整并运行程序,体验数据加密的过程。
部分核心算法代码:
def CaesarCipher(): #Button按钮激发函数
c=mingwen.get("0.0", "end")[ :-1] #获取Text组件mingwen的明文内容
b=""
miwen.delete("0.0", "end") #清空Text组件miwen的内容
for i in range(len(c)): #获取明文内容的每一个字符,并加密
#判断a~w或A~W间的字母
if 'a'<=c[i]<='w' or 'A'<=c[i]<='W’:
b=b+chr(ord(c[i])+3) #生成密文#判断x~z或X~Z间的字母