首页 > 其他分享 >魔法学校里的https

魔法学校里的https

时间:2024-07-27 12:29:53浏览次数:8  
标签:加密 魔法 莉莉 学校 邮递员 钥匙 https 艾文

在魔法学校,小魔法师艾文和小女巫莉莉暗恋着对方,他们想通过魔法信件来传递情书,但是学校的魔法邮递员们(中间人)总是喜欢偷看并且篡改他们的信件,这让艾文和莉莉很苦恼。

单向锁

艾文发明了一个单向锁,这个锁配有一把钥匙,只有用这把钥匙才能打开锁。他把钥匙复制了一份给莉莉,这样他每次写完情书后,都用这个锁把情书锁起来,莉莉收到后用钥匙打开。如果莉莉想回信,也需要把回信锁在这个魔法锁里,然后再寄给艾文。但是好景不长,邮递员们也偷偷复制了钥匙,他们开始偷看甚至篡改情书的内容,导致莉莉对艾文出现很多误会。

双向魔法锁 - 防篡改

艾文决定升级他的锁,对单向锁施加魔法,发明了一个双向魔法锁,这个锁有两把不同的钥匙A和B。特别的是,用钥匙A锁上的锁,必须用钥匙B才能打开,反过来也一样。艾文把钥匙B给了莉莉,每次写信时他用钥匙A锁上,莉莉收到后用钥匙B打开。即使邮递员复制了钥匙B,他也只能用B打开锁,而不能再次还原锁的状态(用A进行加锁),因为只有艾文有钥匙A(私有)。即使邮递员用窃取到的钥匙B重新上了锁,也只有钥匙A才能打开。这样,莉莉就能知道信件是否被打开过甚至被篡改过,因为如果她不能用钥匙B打开锁,就意味着信件被打开甚至被篡改了。

莉莉也使用魔法制作了一个双向魔法锁,配有钥匙C和D。她把钥匙D给了艾文,自己保留钥匙C。这样,艾文可以用钥匙D锁上他的情书,只有莉莉能用钥匙C打开。

这样就解决了信件被篡改的问题。

魔法锁与效率问题

然而,双向魔法锁虽然安全,但是制作双向魔法锁太消耗魔力了,每次都要花费很多魔力来锁上和打开,导致二人需要很长时间来恢复魔力,这大大降低了他们通信的频率。艾文决定结合单向锁和双向魔法锁的优点。

单向与双向魔法锁的结合

  1. 莉莉制作了一个双向魔法锁,配有钥匙C和D,把钥匙D给艾文。
  2. 艾文准备一个单向锁和钥匙M,然后用莉莉给的钥匙D把钥匙M锁上双向魔法锁,寄给莉莉。
  3. 由于使用了双向魔法锁,可以确保信件没有被打开过。邮递员们虽然想偷看,但是他们没有钥匙C,无法打开双向魔法锁。于是就能确保双向魔法锁里面的钥匙M没有被任何人复制过。
  4. 莉莉取出单向锁的钥匙M,现在他们都有了钥匙M,可以用它来在不消耗魔力的情况下加密他们的情书了。

防止魔法锁被替换

邮递员们不甘心,他们绞尽脑汁终于学会了给单向锁施加魔法的方式,他们也制作出了双向魔法锁!并且也制作出了两把钥匙X和Y。艾文把自己的钥匙A保留,把钥匙B寄给莉莉,但是邮递员们把钥匙B掉包成了钥匙X寄给莉莉,莉莉欢天喜地的用钥匙X,给提前准备好的单向锁钥匙M加上双向魔法锁,然后寄给艾文。邮递员们拿到用X加锁的信件,他们当然可以用制作的钥匙Y打开,拿到里面的单向锁钥匙M,偷偷复制了一份,然后把单向锁钥匙M用他们之前扣留下的钥匙B进行加锁,然后寄给艾文,艾文自然用钥匙A进行解锁,而没有发现任何异常。之后艾文和莉莉用单向锁发情书,自然会被邮递员们打开甚至继续篡改。

简单说,就是,莉莉以为她是用艾文的钥匙加密,但却是邮递员的。艾文以为是用他的钥匙加密后传给他的钥匙M,因为他解得开,但却是邮递员伪装的。双方都不知情。

魔法学校的公证人

为了防止邮递员们替换钥匙,艾文和莉莉找到了魔法学校的公证人——校长。校长有一本魔法书,魔法书可以给任何物品生成唯一一条咒语并且写在魔法书上,但是谁也不能根据咒语知道这是什么物品,即使是校长本人。魔法书与校长签订了契约,只有校长才知道生成咒语的规则是什么。艾文同样保留了钥匙A,但是他不直接把钥匙B寄给莉莉,而是拿着钥匙B去找校长做公正,校长在他的魔法书上记录下钥匙B的咒语。然后艾文借走魔法书,并且把魔法书和钥匙B寄给莉莉。莉莉收到魔法书和钥匙?(不确定有没有被邮递员替换过)之后去找校长,校长拿着魔法书,根据只有他知道的生成规则,来生成钥匙?的唯一咒语,并且与魔法书中已经记录过的咒语进行比较,如果不一致,那么钥匙或者魔法书上的咒语被替换过(即使邮递员篡改了咒语,他们也不知道只有校长才知道的生成规则),如果完全一致,那么钥匙就没有被其他任何人替换过。

这样就解决了钥匙被替换的问题。

艾文和莉莉可以尽情发送情书了。

HTTPS的魔法类比

在这个魔法学校的故事里,艾文和莉莉就像是客户端和服务端,邮递员们就像是传输链路中的中间人,校长就像是CA机构。他们通过魔法锁(加密)来保护他们的情书(数据),防止被偷看和篡改。这就是HTTPS的工作原理。

单向锁就是对称加密:需要有一个客户端生成的对称密钥,用于对传输的数据进行加密,但需要将该对称密钥告知给服务器

双向魔法锁就是非对称加密:服务器提供一个公钥(自己持有私钥),将公钥传发送给客户端,客户端使用公钥对对称密钥进行加密,将密文传送给服务器

非对称加密比对称加密慢,主要是因为其密钥对生成、加密和解密过程涉及复杂的数学运算,如大数运算和模幂运算,这些因素共同导致非对称加密的整体加密和解密速度相对较慢,所以通常用于加密少量关键数据而非大量数据。

校长是第三方认证机构,魔法书是证书,咒语是证书中的签名: 服务器首先生成一对公钥和私钥,并在第三方公证机构申请一个包含公钥信息的证书。随后,服务器将公钥发送给客户端。由于证书的校验机制非常严格,黑客即使获取了证书,也很难伪造一个有效的假证书。即使黑客尝试伪造,客户端也可以通过第三方公证机构进行验证。验证方使用证书中签发者的公钥对签名进行解密,得到原始哈希值。同时,验证方对证书内容进行哈希计算,得到一个新的哈希值。比较这两个哈希值,如果一致,则表明证书内容在传输过程中未被篡改。这样,客户端就能安全地获取服务器发送的公钥,并使用该公钥加密自己生成的密钥,然后发送给服务器。由于黑客没有私钥,即使他们截获了这个加密的请求,也无法获取密钥。因此,服务器能够安全地接收到加密的密钥,并使用私钥进行解密。最终,这种方法能够有效地防止黑客获取或篡改数据。

以上就是魔法学校里的https。

感谢阅读!如果你喜欢这篇文章,不妨点赞关注加收藏哦!

标签:加密,魔法,莉莉,学校,邮递员,钥匙,https,艾文
From: https://blog.csdn.net/G121121W/article/details/140621940

相关文章

  • Flask启用https
    1.生成或获取SSL证书使用openssl生成自签名证书#req-x509生成自签名证书#-newkeyrsa:4096生成一个新的私钥,指定为4096位的RSA密钥对#-keyoutkey.pem私钥保存到key.pem文件#-outcert.pem自签名证书保存到cert.pem文件#-days365证书的......
  • P10218-魔法手杖
    题面\(O(nk^2)\)我们考虑如果确定了\(ans\),如何判断是否合法?考虑从高到低逐位确定\(x\)。设\(ans\)和\(x\)的第\(i\)位为\(ans_i,x_i\)。分类讨论一波:如果\(ans_i\)为:0:无论\(x_i\)取什么,总有一边在异或\(x\)后第\(i\)位为1。\(x_i=0\),那么右子树一定......
  • 国内较好的自闭症儿童学校推荐:专业呵护孩子成长
    当孩子被诊断为自闭症,家长们便步入了一段充满艰辛但又满含期望的旅程,为孩子寻觅一所专业且能给予精心呵护的学校成为当务之急。在国内,存在众多出色的自闭症儿童学校,凭借其出色的教育理念与方法,为孩子们的成长带来了希望的曙光。有这样一类学校,它们配备了经验丰富且专业素养极......
  • 如何申请HTTPS证书?简单5步完成HTTPS证书申请
    在当今互联网+时代,保护用户的敏感数据和隐私变得越来越重要,HTTPS证书可以加密传输数据,有效保护传输数据安全,消除浏览器不安全提示,增加网站的安全性和可信性,由此个人或企业网站都建议部署HTTPS证书。那么我们应该如何申请HTTPS证书呢?在本文中,我们将向您介绍5个简单的步骤,让您轻......
  • Https证书安装
    1、将CA根证书拷贝到本地机器 2、安装方案一 :地址栏输入cmd进入命令行如下如图,注意路径:输入命令: certutil -addstorerootrootCA.crt如上图,表示安装成功 3、安装方案二 :双击证书  点下一步完成安装 ......
  • 使用CloseableHttpClient 访问 http 和https 的get请求
    publicclassHttpClientUtil{privatestaticLoggerlogger=LoggerFactory.getLogger(HttpClientUtil.class);/***带参数的get请求**@paramurl*@paramparam*@returnString*/publicstaticStringdoGet(Stringurl,Map<S......
  • 牛可乐与魔法封印----(二分)
     题目描述牛可乐得到了一个长度为n且非严格单调递增的序列 a,然而这个序列被q层魔法封印了,其中第i 层封印的问题包含两个整数xi,yi(xi≤yi),牛可乐必须正确回答序列中大于等于xi且小于等于yi​的数字个数才能够解开该层封印。牛可乐觉得这个问题太难了,于是他想请......
  • 企业用户适合的https证书
    对于企业网站来说,选择合适的SSL证书非常重要,因为它不仅能保护网站的数据传输安全,还能增强用户对网站的信任度。根据不同的需求和预算,可以选择不同类型的SSL证书。以下是几种常见的SSL证书类型及其适用场景:从安全级别上区别:域名验证型(DV)SSL证书:这是最基础的SSL证书,仅验......
  • 常用端口申请IP SSL实现https教程
    在网络安全和数据保护方面,使用HTTPS协议来保护网站和应用程序的通信变得至关重要。一般情况下,HTTPS证书是基于域名签发的。但是,有时候我们可能需要为IP地址申请HTTPS证书,在一些特殊场景下确保通信的安全性。IPSSL证书也是SSL证书的一种,因其是颁发给IP地址使用的,所以我们......
  • 详情 | GeoTrust OV通配符HTTPS证书申请流程
    GeoTrust是高端证书品牌,拥有强大的品牌背书。其SSL证书在全球范围内得到广泛认可,为企业的网络安全提供了有力保障。而GeoTrust的OV通配符证书更是众多企业的首选!选择一个合适的渠道进行申请购买择尤为重要!下面是GeoTrustOV通配符证书具体申请流程GeoTrustOV通配符......