内容正文:
3.4 加密与解密
授课人:
2026年X月XX日
学习目标
理解数据加密与解密的概念及其原理
了解数据加密的历史
能用Python程序实现简单的加密算法
分析生活中关于密码的数据安全问题,理解数据保护的意义
01
02
03
04
05
重点:数据加密和解密的概念及原理
难点:用Python实现简单的加密算法
01
02
学习重难点
导入
你最常用的需要加密的软件或工具是什么?
你还记得第一次使用这些加密工具时是如何设置密码的吗?
你觉得你现在所使用的加密方式安全性高吗?
任务一:解开网站账号被盗之谜
活动1:防范“盗窃行为”
盗窃方式 防盗窃措施
肩窥方式
(偷看)
字典破解
暴力破解
(穷举法)
密码不要用生日、姓名及拼音缩写、手机号、简单数字组合、单词、身份证号、用户ID等。
同时包含大小写字母、数字、特殊符号,不少于8个字符。
我们可以在输入密码时遮挡自己的操作过程,防止别人偷看密码信息;或者确定环境安全后再进行操作。
不少人有密码被盗的经历,这往往会导致个人信息泄露,甚至是财产损失。你是否有使用账号、密码的经验?
请你思考表中列出的密码盗窃方式,思考相应的防盗措施,填入表中。
盗窃方式
防盗窃措施
6
活动2:设置安全密码
密码的概念:密码是指用来核对用户ID以验证用户就是本人的一组字符。
密码长度 密码值 破解时间
5位 12567
98302
7位 1234567
7654321
9位 123456789
987654321
3毫秒
20毫秒
106.006毫秒
404.023毫秒
6秒69.347毫秒
48秒182.755毫秒
请你运行“数据安全性测试.py”,测试穷举搜索以下数字密码,分别需要多长时间,然后填写下表。
由此,我们可以得出结论:密码越复杂(密码越长,数值越大),安全性能就越高,破解难度就越大。
具体结果会因计算机性能不同而有所不同。
活动2:设置安全密码
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.microseconds/1000)+"毫秒")
1秒(s)=1000毫秒(ms/millisecond)=1,000,000微秒(μs/microseconds)
活动2:设置安全密码
思考一下,如果密码中还有字母,破解的时间会变长吗?请思考创建安全密码的方法。
1.使用长度不少于8个字符的密码。密码长度越长越不容易被破解。
2.在可能的情况下,尽量使用字母、数字和特殊字符(如$、#)相结合的密码。
3.不要使用电话号码、身份证号码或生日等信息作为密码。
4.不要使用整个用户ID或用户ID的一部分作为密码。
5.不要使用字典中能找到的词语作为密码,即使是字母次序颠倒过来的常用词语也不可以。
任务二:让数据隐身
活动1:古老的隐身术
自古以来,在管理国家、指挥战斗或是经济来往中,都需要高效、安全的数据通信系统。古人就已会用很多办法将数据伪装起来,使得只有联络好的数据接收者才能读懂。
加密与解密
明文
(原始信息)
密文
(加密后信息)
加密
解密
加密:将原始信息(数据)隐匿起来,使之缺少特殊信息(数据)时不可读。
解密:将密文还原成明文的过程
活动2:揭秘“隐身术”
恺撒在征服高卢、袭击日耳曼和不列颠的多次战斗中频繁使用加密技术。恺撒简单地将明文中的每一个字母用字母表中该字母后的第3个字母替换。例如,将明文中的a用d替换,b用e替换,……,z用c替换,这就是恺撒密码。
凯撒密码
ABCDEFGHIJKLMNOPQISTUVWXYZ
DEFGHIJKLMNOPQISTUVWXYZ
ABC
明文
DMS
密文
GPV
明文
密文
凯撒密码
思考
1.找出第2行和第4行ASCII码同列之间的数字有什么规律?
2.找出明文"BOY"对应的密文是什么?
密文的ASCII码=明文的ASCII码+3
密文的ASCII码=明文的ASCI码-23
ERB
凯撒密码
ord( )函数:返回对应字符的ASCII码
chr( )函数:返回该ASCII码对应的字符
密文的ASCII码=明文的ASCI码+3
注:小写字母加密原理相同 ,并且恺撒密码只加密英文字母。
凯撒密码
循环结构:
对整个明文(字符串)进行加密。
def CaesarCipher(): #“加密”按钮激发函数
c=mingwen.get("0.0", "end")[:-1] #获取mingwen对象的内容(明文)
b=""
miwen.delete("0.0", "end") #清空miwen对象的内容
for i in range(len(c)): #获取明文内容的每一个字符,并加密
if 'a'<=c[i]<='w' or 'A'<=c[i]<='W': #判断a~w或A~W间的字母
b=b+chr(ord(c[i])+3) #生成密文
elif 'x'<=c[i]<='z' or 'X'<=c[i]<='Z' : #判断x~z或X~Z间的字母
b=b+chr(ord(c[i])-23) #生成密文
else:
b=b+c[i] #字母以外的明文不变
miwen.insert("0.0",b) #在miwen对象中显示结果
凯撒密码
ord( )函数:返回对应字符的ASCII码
chr( )函数:返回该ASCII码对应的字符
Len()函数:获取字符串中字符的个数
凯撒密码的解密
解密:是加密的逆运算。
明文
密文
加密
加密
ASCII码+3或者ASCII码-23
ASCII码-3或者ASCII码+23
加法密码
加法密码又被称为移位密码。在加法密码算法中,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。
密文=明文+k
加密算法操作中的一组数字被称为密钥,即k。密钥k=3时,称为恺撒密码。
拓展知识:相关法律
国家已经出台多部法律,大力实施数据保护,维护国家安全和网络秩序。2017年6月1日起施行的《中华人民共和国网络安全法》,明确要求网络运营者应当按照网络安全等级保护制度的要求,履行安全保护义务,保障网络免受干扰、破坏或者未经授权的访问,防止网络数据泄露或者被篡改,窃取。
《中华人民共和国刑法》第二百八十五条至第二百八十七条,对非法侵入计算机系统,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,利用计算机实施金融诈骗、盗窃、贪污、挪用公款、窃取国家秘密等行为进行了量刑定罪。
总结
我们也要从自己做起,保护好个人隐私,遵守相关法律和必要的道德规范,共同维护健康、良好的数据环境。
巩固练习
A.肩窥方式
C.暴力破解
B.字典破解
D.以上三种都是
1. 常见的密码盗窃方式有( ) (单选)
①定期更换密码 ②不同平台使用不同密码
③使用手机号码或出生日期作为密码
④使用数字、字母、特殊字符组合作为密码
A.①②④ B.②③④ C.①③④ D.①②③
2. 下列使用密码的做法比较安全的是( ) (单选)
D
A
巩固练习
3. 下列行为中容易导致个人信息泄露的是( ) (单选)
A.对个人计算机设置密码
B.不在公共计算机上登录网课
C.离开公共计算机前退出已登录的账户,并清除计算机中的 cookie
D.随意在各网站注册会员以获取新会员礼包
4. 以下字符能作为安全密码使用的是( ) (单选)
A.Go189 B.123456 C.20100501 D.Zw*3a74P
D
D
巩固练习
6. 将明文转换成密文的过程称为 ,将密文还原成明文的过程称为 。
A.明文 暗文 B.加密 解密
C.明文 密文 D.密码 加密
B
5. 原始信息(数据)称为 ,加密后的信息(数据)称为 。
A.明文 暗文 B.加密 解密
C.明文 密文 D.密码 加密
C
7. 已知明文为yes,请使用凯撒密码进行加密,生成的密文为 。
bhv
谢谢大家!
Lavf58.20.100
$