博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对称加密与非对称加密
阅读量:6244 次
发布时间:2019-06-22

本文共 1079 字,大约阅读时间需要 3 分钟。

对称加密:

加密(encryption)与解密(decryption)使用的是同样的密钥(secret key),对称加密是最快速、最简单的一种加密方式。
加密和解密算法是公开的,秘钥必须严格保存,如果秘钥泄露,别人就能够用密文+秘钥还原成你的明文。

对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。

对称加密通常使用的是相对较小的密钥,一般小于256bit。因为密钥越大,加密越强,但加密与解密的过程越慢。如果你只用1bit来做这个密钥,那黑客们可以先试着用0来解密,不行的话就再用1解;但如果你的密钥有1MB大,黑客们可能永远也无法破解,但加密和解密的过程要花费很长的时间。

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

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

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

另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。

非对称加密:

非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(简称公钥)和私有密钥(简称私钥),即常说的“公钥加密,私钥加密”或“私钥加密,公钥加密”。

私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。

非对称加密使用这对密钥中的一个进行加密,而解密则需要另一个密钥。

比如,你向银行请求公钥,银行将公钥发给你,你使用公钥对消息加密,那么只有私钥的持有人--银行才能对你的消息解密。

与对称加密不同的是,银行不需要将私钥通过网络发送出去,因此安全性大大提高。

比如RSA就是最常用的非对称加密算法。

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

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

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

对称加密加密与解密使用的是同样的密钥,所以速度快,但由于需要将密钥在网络传输,所以安全性不高。

非对称加密使用了一对密钥,公钥与私钥,所以安全性高,但加密与解密速度慢。

解决的办法是将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通。

转载地址:http://tspia.baihongyu.com/

你可能感兴趣的文章
ES6语法(三) 对象
查看>>
Swift4 func
查看>>
create-react-app2.x 自定义配置(less 按需加载 装饰器)
查看>>
第一个掘金文章
查看>>
最酷的深度学习聊天机器人资源集合
查看>>
SVG 在 image 标签中的动态修改技巧
查看>>
js的三种编码解码方法
查看>>
7月31日云创大会游戏论坛门票0元抢!
查看>>
a标签href不跳转 How?
查看>>
WebP进阶篇--Gif2WebP
查看>>
Java基础-- ==号与equals()方法的区别
查看>>
VARCHART XGantt实践:兼顾清晰和细节的排列优化
查看>>
小程序实现人脸识别功能
查看>>
Flora图像风格迁移App
查看>>
常用数组方法梳理
查看>>
JavaScript(4)之——前端模块化
查看>>
数字图像处理----图像旋转
查看>>
iOS 报错 Library not found lPods AFNetworking
查看>>
Spark性能优化:数据本地化优化
查看>>
Java中几个常用类介绍
查看>>