HTTPS简介:对称加密

Posted go2coding

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTPS简介:对称加密相关的知识,希望对你有一定的参考价值。



密码学可能是一个难以理解的主题。它充满了数学证明。除非你真的需要开发密码系统,否则,如果你只想从宏观的角度了解密码学,你并不需要理解这些复杂的内容。

如果你抱着能够创建下一个 HTTPS 协议的期望打开这篇文章,我不得不遗憾地表示只有信鸽是不够的。否则,煮一些咖啡,享受这篇文章吧。

Alice,Bob 和信鸽?

你在互联网上的任何活动(阅读这篇文章,在亚马逊上买东西,上传猫咪的图片)都归结为向服务器发送消息和从服务器接收消息。

这么讲听起来可能有点抽象,因此,我们不妨假设这些信息是通过信鸽传递的。我明白这么假设显得很随意,但请相信我:HTTPS 的工作原理就是这样的,只是快得多。

本文中我们并不会使用,服务器,客户端和黑客这样的术语,取而代之的是,我们会依次使用人名 Alice、 Bob 和 Mallory来代替它们。如果你不是第一次尝试理解密码概念,你可以认出这些名字,因为它们被广泛用于技术文献中。

一次简单的通讯

如果 Alice 想要给 Bob 传递一条信息,她将信息绑在信鸽的腿上,然后让信鸽传给 Bob。Bob 收到信息,读取信息。一切都正常。

但要是 Mallory 途中拦截了 Alice 的信鸽,并且改变了信息的内容?Bob 无法知道 Alice 发送的信息在传递途中被修改了。

这就是 HTTP 的工作原理。挺可怕的,对吧?我不会通过 HTTP 协议来发送我的银行凭证,你也不应该这么做。

一个密令

那如果 Alice 和 Bob 都很机灵呢。他们同意将使用密令来写信息。他们将字母表中的每个字母偏移 3 个位置。比如:D -> A, E -> B, F -> C。明文“secret message”将转换成“pbzobq jbppxdb”。

现在,如果 Mallory 拦截了信鸽,她既不能把信息改变成一些有意义的信息,也不能明白信息里说的内容,因为她不知道密令。但是Bob可以简单地反向应用密令(A -> D, B -> E, C -> F)将信息解密。密文“pbzobq jbppxdb”将被解密回“secret message”。

大功告成!

这被称为对称密钥密码术,因为当你知道如何加密一条信息,你也知道如何给信息解密。

我在上面介绍的密令通常被称为凯撒密码。在现实生活中,我们使用更高级和复杂的密令,但是主要思路是相同的。

openssl的对称加密

openssl 中集合了大部分的加解密算法,用 openssl 来模拟对称加密的过程,假设Alice 写的一封信件放在 plain.txt

 
   
   
 
  1. root@ubuntu:~/openssl_ca/enc# cat plain.txt

  2. hello

使用 openssldesplain.txt 进行加密,

 
   
   
 
  1. openssl enc -e -des -in plain.txt -out encrypt.txt -pass pass:12345678

使用密码 12345678 进行加密,输出到文件 encrypt.txt 中。

查看 encrypt.txt 中的内容:

 
   
   
 
  1. root@ubuntu:~/openssl_ca/enc# cat encrypt.txt

  2. Salted__

    以上是关于HTTPS简介:对称加密的主要内容,如果未能解决你的问题,请参考以下文章

    HTTPS简介

    非对称加密的工程实践

    加密技术对称与非对称加密简介

    常见对称加密算法与工作模式简介

    对称加密算法简介

    Spring Cloud Config - RSA简介以及使用RSA加密配置文件