HTTPS 之对称加密与非对称加密

对称加密

加密 encryption 与解密 decryption 使用的是同样的密钥 secret key,对称加密是最快速、最简单的一种加密方式。加密和解密算法是公开的,秘钥必须严格保存,如果秘钥泄露,别人就能够用密文+秘钥还原成你的明文。 对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。 对称加密通常使用的是相对较小的密钥,一般小于 256bit。因为密钥越大,加密越强,但加密与解密的过程越慢。如果你只用 1bit 来做这个密钥,那黑客们可以先试着用 0 来解密,不行的话就再用 1 解;但如果你的密钥有 1MB 大,黑客们可能永远也无法破解,但加密和解密的过程要花费很长的时间。

For Example

比如常见的 DES/AES 都是属于对称加密算法。

优点

算法公开、计算量小、加密速度快、加密效率高。

缺点

秘钥的管理和分发非常困难,不够安全。在数据传送前,发送方和接收方必须商定好秘钥,然后双方都必须要保存好秘钥,如果一方的秘钥被泄露,那么加密信息也就不安全了。

非对称加密

非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(简称公钥)和私有密钥(简称私钥),即常说的“公钥加密,私钥加密”或“私钥加密,公钥加密”。 私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。 非对称加密使用这对密钥中的一个进行加密,而解密则需要另一个密钥。

For Example

RSA 就是最常用的非对称加密算法。 比如,你向银行请求公钥,银行将公钥发给你,你使用公钥对消息加密,那么只有私钥的持有人--银行才能对你的消息解密。 与对称加密不同的是,银行不需要将私钥通过网络发送出去,因此安全性大大提高。

虽然非对称加密很安全,但是和对称加密比起来,它非常的慢,所以我们还是要用对称加密来传送消息,但对称加密所使用的密钥我们可以通过非对称加密的方式发送出去。

优点

安全性更高,公钥是公开的,秘钥是自己保存的,不需要将私钥给别人。

缺点

加密和解密花费时间长、速度慢,只适合对少量数据进行加密。

总结

对称加密加密与解密使用的是同样的密钥,所以速度快,但由于需要将密钥在网络传输,所以安全性不高。 非对称加密使用了一对密钥,公钥与私钥,所以安全性高,但加密与解密速度慢。 解决的办法是将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏个人随笔

Java MD5加密与RSA加密

6834
来自专栏佳爷的后花媛

php中的公钥和私钥

最近公司业务需要用到公钥和私钥,之前接触的很少,不是很了解,刚刚上网了解了下.发现很多地方都要用到加密.有对称加密算法( DES,AES)[加密和解密都使用一个...

1484
来自专栏小工匠技术圈

【Java小工匠聊密码学】--非对称加密--概述

  非对称加密算法需要两个密钥:[公开密钥] (publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,...

1093
来自专栏码匠的流水账

java加解密实例

1212
来自专栏java 成神之路

RSA 非对称加密原理(小白也能看懂哦~)

1.6K9
来自专栏Theo Tsao

RxSwift学习笔记之Subject

RxSwift Subject共分为AsyncSubject、BehaviorSubject、PublishSubject、ReplaySubject。

1162
来自专栏Android-薛之涛

Android-加解密

不可逆加密算法的特征是加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,只有重新输入明文,并再次经过同样不可...

1463
来自专栏日暮星辰

SSL/TLS加密检测脚本testssl.sh

以前SSL检测常用工具就是ssllabs的:https://www.ssllabs.com/ssltest/ 以及国内的https://myssl.com/.

4161
来自专栏小工匠技术圈

【Java小工匠聊密码学】--非对称加密--ElGamal

  ElGamal算法,是一种较为常见的加密算法,它是基于1985年提出的公钥密码体制和椭圆曲线加密体系。既能用于数据加密也能用于数字签名,其安全性依赖于计算有...

993
来自专栏小工匠技术圈

【Java小工匠聊密码学】--对称加密--AES

  AES加密算法是密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的...

1192

扫码关注云+社区

领取腾讯云代金券