对称加密和非对称加密

对称加密和非对称加密

  1. 对称加密

对称加密指的就是加密和解密使用同一个秘钥,所以叫做对称加密。对称加密只有一个秘钥,作为私钥。

常见的对称加密算法:DES,AES,3DES等等。

  1. 非对称加密

非对称加密指的是:加密和解密使用不同的秘钥,一把作为公开的公钥,另一把作为私钥。公钥加密的信息,只有私钥才能解密。私钥加密的信息,只有公钥才能解密。

常见的非对称加密算法:RSA,ECC

  1. 区别

对称加密算法相比非对称加密算法来说,加解密的效率要高得多。但是缺陷在于对于秘钥的管理上,以及在非安全信道中通讯时,密钥交换的安全性不能保障。所以在实际的网络环境中,会将两者混合使用.

例如针对C/S模型,(SSL技术),https协议都是使用的这种方式,我猜git也是

  1. 服务端计算出一对秘钥pub/pri。将私钥保密,将公钥公开。

  2. 客户端请求服务端时,拿到服务端的公钥pub。

  3. 客户端通过AES计算出一个对称加密的秘钥X。 然后使用pub将X进行加密。

  4. 客户端将加密后的密文发送给服务端。服务端通过pri解密获得X。

  5. 然后两边的通讯内容就通过对称密钥X以对称加密算法来加解密。

SSL

SSL(Secure Sockets Layer 安全套接字协议),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层应用层之间对网络连接进行加密。
SSL,即套接字上的安全层,简单来说就是在TCP之上做一个安全通信层,HTTP on SSL 即是HTTPs,现在几乎所有的银行网站访问都是基于HTTPS协议的。

SSL交互过程还是很复杂的,牵扯到非对称加密和对称加密,以及复杂的交互过程,为此有人写了openssl库,这个库的使用非常广泛,本文就是阐明如何安装和基本使用这个库的。有了这openssl库,就可以直接写和HTTPS的交互的代码了。


版权声明:本文为qq_37636695原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。