资源简介 (共23张PPT)3.4加密与解密121%0本节课学习目标了解数据加密和解密的概念及原理了解数据加密的历史会用Python实现简单的加密算法会分析生活中由密码引起的数据安全问题,理解对数据进行保护的意义不少人有密码被盗的经历,这往往导致个人信息泄露,甚至是财产损失。你是否有过账号密码被盗的经历呢?导入任务一、揭开网站账号被盗之谜不少人有密码被盗的经历,这往往会导致个人信息泄露,甚至是财产损失。根据表3.4.1中的盗窃方式,分析出对应的防盗窃的措施。盗窃方式 防盗措施肩窥方式 我们可以在输入密码时遮挡自己的操作过程,防止别人偷看密码信息;或者确定环境安全后再进行操作字典破解暴力破解肩窥攻击是指通过窥看用户的键盘输入,鼠标移动等方式来获取用户口令。字典破译是利用人们习惯用人名、地名或者常见的词语设置成密码的习惯进行破译,有好的字典是关键。暴力破解是一个一个的尝试(穷举)。密码同时包含大小写字母、数字、特殊符号,不少于8位密码不要用生日,姓名及拼音缩写,手机号、简单数字组合,单词、身份证号,用户ID等。任务一、揭开网站账号被盗之谜1-1活动一、防范“盗窃行为”我看我猜我试1-2任务一、揭开网站账号被盗之谜密码长度 密码值 破解时间5位 12567 1.0ms98302 1.0ms7位 123456797843029位 123456789321809456具体结果会因计算机性能不同而有所不同体验活动1 “暴力破解”----纯数字请同学们运行“数据安全性测试.py”,测试破解一个5位、7位和9位的纯数字密码,分别需要多长时间,然后填写下表。流程图数据安全性测试——无可视化界面数据安全性测试——可视化界面Varin.get()Varout.set()接收文本框中的数据在文本框中显示输出数据结论1:密码越长,破解时间越长结论2:密码每位可选择的字符数越多,破解的时间越长活动1 设置安全密码防御“暴力破解”可行方案:提高密码的复杂度增加密码的长度测试四位超级密码的破解时间数字+字母+特殊字符J@4q数字+字母+特殊字符3R8@!cn数字+字母+特殊字符HxA7Lj@9!19*94319*94519秒143毫秒0.5年4421年 使用长度不少于8位字符的密码。密码长度越长越不容易被破解。密码长度多种符号组合在可能的情况下,尽量使用字母、数字、特殊字符(例@、¥、#、%)相结合的密码。不要用不包含个人信息(电话号码、身份证号、等);不包含用户ID;不包含字典中的词语,字母次序颠倒的常用词语。创建安全密码的一般技巧1234限制登录次数使用验证码使用用户具有排他性的自然特征(如指纹、人脸等)限对数据进行二次加密防止密码被盗的其他手段什么是加密?如何对数据进行加密呢?加密、解密的概念与过程将原始信息(数据)隐匿起来,使之在缺少特殊信息时不可读将密文还原成明文的过程密匙:控制加密与解密过程的进行,加密算法操作中的一组数字解密加密HAPPY明文 密文KDSSB加密后的信息(数据)原始信息(数据)123683年——拆字法将明文中的文字进行组合生成新的字,即为密文,比如“十二月”合起来为“青”。北宋——代码法北宋进士曾公亮曾搜集了40个常用军事短语,然后对其进行顺序编码:一、请弓;二、请箭;三、请刀;四、请甲;五、请枪旗;六、请锅幕;七、请马;八、请衣赐;九、请粮料……四十、战小胜。军队出征前,指挥机关将用上述短语编码的密码本发给将领,并约定用一首不含重复文字的40字五言律诗与密码相对应。公元前五世纪——移位法希罗多德的《历史》中记载了公元前五世纪,希腊城邦和波斯帝国发生多次冲突和战争。这些战争中希腊城邦中广泛使用了移位法进行加密处理战争通讯信息,使波斯帝国难以获得希腊城邦的军事情报,也就无法提前做军事部署。希腊城邦用来传输军事信息、命令的每段文字都有固定的字数,解密者手中会有一份文字移位说明.解密者拿到密文后,根据文字移位说明进行解密,从而破解其中的军事命令或消息古罗马时期——“恺撒密码”所谓的“恺撒密码”,它是一种替代密码,通过将字母按顺序推后起3位起到加密作用,如将字母A换作字母D,将字母B换作字母E,因据说凯撒是率先使用加密函的古代将领之一,因此这种加密法被称为凯撒密码。第二次世界大战——“密码机”密码机。在第二次世界大战期间,德国军方启用“恩尼格玛”密码机,密码学在战争中起着非常重要的作用活动二、古老的“隐身术“45了解数据加密的发展历史数据加密发展历史02活动二、揭秘“隐身术““恺撒密码”:典型的加法密码(移位密码)将明文中的每一个字母用字母表的该字母后的第三个字母替换,例:a->d,b->e,…z->c在python中常用ASCII码来对字符进行编码存储。恺撒密码的密钥为3,像这种加密和解密使用同一个密钥,被称为对称加密体制。ASCII码+3ASCII码+3ASCII码-23ASCII码-23chr(ord(c[i])+3)chr(ord(c[i])-23)Len函数:获取字符串字符的个数Ord函数:将字符转换成数值Chr函数:将数值转换成字符凯撒密码from tkinter import *root = Tk()root.title("凯撒加密")root.geometry('300x200')def CaesarCipher(): #“加密”按钮激发函数c=mingwen.get("0.0", "end")[:-1] #获取明文内容b=""miwen.delete("0.0", "end") #清空miwen对象的内容for i in range(len(c)): #明文长度if 'a'<=c[i]<='w' or 'A'<=c[i]<='W':b=b+chr(ord(c[i])+3) #生成密文elif 'x'<=c[i]<='z' or 'X'<=c[i]<='Z':b=b+chr(ord(c[i])-23) #生成密文else:b=b+c[i] #字母以外的明文不变miwen.insert("0.0",b) #在miwen对象中显示结果Label(root, text='请输入明文', font=('Arial', 10)).pack()mingwen=Text(root,width=300,height=4)mingwen.pack()mingwen.focus_set() #获得焦点Button(root, text="加密", command=CaesarCipher,relief="solid",width=10).pack()Label(root, text='凯撒密文', font=('Arial', 10)).pack()miwen=Text(root,width=300,height=4)miwen.pack()root.mainloop()明文c a~w A~W x~z X~Z 其他密文b d~z D~Z a~c A~C 不变规律公式明文c a~w A~W x~z X~Z 不变密文b d~z D~Z a~c A~C 其他规律公式加密解密是加密的逆运算恺撒密码解密解密ASCII码+3ASCII码+3ASCII码-23ASCII码-23不变'a'<=c[i]<='w' or 'A'<=c[i]<='W''x'<=c[i]<='z' or 'X'<=c[i]<='Z'chr(ord(c[i])+3)chr(ord(c[i])-23)c[i]ASCII码-3ASCII码-3ASCII码+23ASCII码+23不变'd'<=b[i]<='z' or 'D'<=b[i]<='Z''a'<=b[i]<='c' or 'A'<=b[i]<='C'chr(ord(b[i])-3)chr(ord(b[i])+23)b[i]运行“凯撒密码.py”,体验加密算法。恺撒密码安全性能如何?可以说,保密性能极差,很容易被解密。就算将明文字符前移或后移一个固定的长度d(称为密钥)发生变化,也最多只需25次尝试d的值,就能破解。扩展思考一种可行的改进方式是,建立一个明文字符与密文字符之间的一一映射表,即“密表”。如:明文:ABCDEFGHIJKLMNOPQRSTUVWXYZ密文:QWERTYUIOPASDFGHJKLZXCVBNM加密时,A→Q,B→W,…;解密时Q→A,W→B,…。其小写字母对应法则也相同,即a→q,b→w,…。这样保密性能大大提升,破解难度大大增加。另外,这个“密表”也可以按需要改变。藏头诗达芬奇密码拓 展:古代中外经典加密算法加密与解密密码加密与解密密码是指用来核对用户ID以验证用户就是本人的一组字符。加密:加密就是将原始信息(数据)隐匿起来解密:将密文还原成明文的过程称为解密。创建安全密码的一般技巧“2”要“3”不要课堂小结单元学习评价10110100 (2) = ( )(10)3D(16) = ( )(10)255(10) = ( )(16)100(10) = ( )(2)E2(16) = ( )(2)11100101(2) = ( )(16)18061FF110010011100010E5任意R进制数( R为大于等于2且不等于10的正整数,下同)转换为十进制数时,都可采用 方法。十进制数转换为R进制数时,都可采用 方法。基数权重展开法除R取余法单元学习评价一段时长为1分钟,采样频率为44.1kHz,量化位数为16位,双声道立体声的无压缩音频(如基于PCM编码的wav格式),占用的存储空间是 MB (精确到0.1 )。10.1解析:采样频率44.1kHz,量化位数16位,意味着每秒采集数据44.1k个,每个数据占2字节,(量化位数是16位,按照计算机术语来看,1位指的是一个二进制位,就是1bit,8bit是一字节,那么16位就是2字节)这是一个声道的数据,双声道再乘以2,最后结果再乘以60秒,就是44.1×1000×2×2×60=10584000字节,1MB=1024×1024=1048576字节,所以一分钟的存储容量为10584000/1048576=10.09MB,约为10.1MB。单元学习评价3. 人、狼、羊、菜过河问题:有一个人带着一只狼、一只羊和一捆白菜,来到一条河边,河边只有一条小船,人每次过河最多只能带一样, 如果人不在现场,狼就要吃羊,羊就要吃菜。他应该怎样安排过河呢?请完成下面的“树”结构分析图,帮他找到可行的过河方案。提示:可约定对象在左岸用0表示,在右岸用1表示。121%0拜拜! 展开更多...... 收起↑ 资源预览