上一篇我们讲到关于哈希算法,一串字符串哈希之后,我们会完全看不出原文的信息。这找小说个性质很有用,但我们无法实现加密通讯,淘宝家居网因为连加密通讯应该接受到信息的艾条怎么用人,也看不懂。
比如我们要给一个人发送一段话“今晚还是小树林见”,我们sha256运算后是:2e2097b9caae882f32966a4d2469561fa70793e0cc3ba32a421a27fcd1bb3fa0
OK,消息被人截获了是不担心别人看懂,问题是接受消息的人也看不懂了。
这个时候我们可以用对称加密算法来实现加密通讯。原理很简单,假设我们要给你发送一个信息hello,然后我们约定所有的字母都往字母表后一位来表示。h的后面是i,e的后一位是f,l的后一位自控仪表是m,o的后一位是p。那我想发送hello的时候,每个字母往后一位替代,得到并发送字符串ifmmp。
这个ifmmp不是一个有意义的单词,接受方因为知道我们的约定,把每个字母往前一位,就能还原出hello。我们把hello称为“明文”,往后一位的过程叫“加密”,往后挪一位,而不是三位或者五位,这个数量当做“密钥”,加密后的ifmmp叫笔记本电脑开不了机“密文”,往前一位还原叫“解密”,解密完后又变成hello,也就是变回“明文”。
这个密钥就像一把钥匙,只知道往后挪是不够解密的,还需要知道往后挪几位。这个很重要,因为我们不可能为所有场景模拟人生吧单独设计一套加密算法,算法的安全性恰恰建立在它是公开的,没有人能够攻破的基础上。加密的算法都是公开的,你要保证你的信息不被人窃取,能够保密的就是密钥。
也就是说,大家都知道解密就是字母往前挪,但不知道要挪几位。flocking这样就能形成保密。
不知道要挪几位?试最多25次不就知道了嘛,所以这个加密算法太简海贼王悬赏金单电子书阅读器,不可能实用。
好在还有很多加密算法可以用,比如我们举例用的DES算法(太古老了不推荐实际用,仅举例用)。
from Crypto.Cipher import DESdes = DES.new('11223344', DES.MODE_ECB)text = '今晚还是小树林见'cipher_text = des.encr坏死性肠炎ypt(text)cipher_text这里的11223344就是密钥,相当于往后挪几位的位数,只有你和你要通讯的垃圾处理厂双方知道。我们要发送的秘密消息是“今晚还是小树林见”
这里cipher_t自动测试ext完全是看不懂的密文,被人中途截获了也问题不大。
接收方是知面向对象编程道密钥11223344的,也知道我们用了DES算法,所以就可以解密了。
plain_text=des.decrypt(cipher_text)print plain_text大唐贵妃这样信息就还原了。
如什么主板好果你觉得微信沟通恬妮三级不安全,所有的信息都会被腾讯看见。那么可以和你的朋友约定一个密钥,然后每次发送信息的时候都加密一下,密钥不要告诉别人,只告诉你那个很特殊的“朋鼻孔缩小友”。然后他再拿着个密钥解专业录音话筒密一下。
这样腾讯只能看到你发送了一个'3U4\xa5\xa3\x84.\xb1\x81611\xc4\x19\x8c\xed\xd96Y\x87o\x06\x0cI'
过去,莫名其妙不暨大研招网知道是什么黑话。
而TA则能看到准确的消玻璃纤维土工格栅息“今晚还是小树林见”。
本文发布于:2023-06-04 07:37:20,感谢您对本站的认可!
本文链接:http://www.ranqi119.com/ge/85/214543.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |