这篇文章主要整理一下面试中会问到的一个知识点:加密算法
加密算法分为两大类,对称加密跟非对称加密
(一)对称加密
1、什么是对称加密?
对称加密就是指,加密跟解密使用同一个密钥的加密方式。
2、对称加密的工作过程
发送方使用密钥将明文数据加密成密文,然后发送出去,接收方收到密文后,使用同一个密钥解密成明文读取。
3、对称加密的优点
加密计算量小,速度快,适合对大量数据进行加密的情景
4、对称加密的两大不足
a.密钥传输问题:如上所说,由于对称加密的加密和解密使用的是同一个密钥,所以对称加密的安全性就不仅仅取决于加密算法本身的强度,更取决于密钥是否被安全的保管,因此加密者如何把密钥安全的传递到解密者手里,就成了对称加密面临的关键问题。(比如,我们客户端肯定不能直接存储对称加密的密钥,因为被反编译之后,密钥就泄露了,数据安全性就得不到保障,所以实际中我们一般都是客户端向服务端请求对称加密的密钥,而且密钥还得用非对称加密加密后再传输。)
b.密钥管理问题:随着密钥数量的增多,密钥的管理问题会逐渐显现出来。比如我们在加密用户的信息时,不可能所有用户都用同一个密钥加密解密吧,这样的话,一旦密钥泄漏,就相当于泄露了所有用户的信息,因此需要为每一个用户单独的生成一个密钥并且管理,这样密钥管理的代价也会非常大。
5.典型的对称加密算法:
AES加密算法
感谢大神的总结:https://www.jianshu.com/p/3840b344b27c
(二)非对称加密
1、什么是非对称加密?
非对称加密是指,需要用一对儿密钥,即公钥和私钥,来完成加解密的方式。如果用公钥加密,则只能用对应的私钥才能解密;而如果用私钥加密,则只能用对应的公钥才能解密。
非对称加密主要是为了解决对称加密的两大不足密钥传输问题和密钥管理问题提出的。
2、对称加密的工作过程
发送方要给接收方发送消息
第一步:接收方生成一对儿密钥,我们称之为公钥和私钥,接收方将私钥保存在自己手上,然后将公钥发布出去。
第二步:想要给接收方发送消息的发送方,将明文和公钥加密成密文,发送给接收方,接收方用私钥将密文解密成明文。
同样的,明文也可以用私钥进行加密,然后用对应的明文进行解密。
3、非对称加密的优点
a.解决了密钥传输问题:对称加密中同一个密钥进行加密,在传输中密钥一旦泄露了,那个整个信息就没有安全性保证了,而非对称加密啊,使用一对儿密钥,只要双方事先发不好,密钥就不用参与传输,因此非对称加密相对对称加密更加安全
b.解决了密钥管理问题:对称加密是随着数据增多,密钥数量增多,一是不好管理,二是传输安全性低,管理麻烦。而非对称加密是一对密钥,自己保留私钥,公钥可以发布给很多人,这样就达到了一对多的效果,不必维护很多密钥。
4、非对称加密的不足
加密计算量大,速度慢,适合对少量数据进行加密场景
5.典型非对称加密算法:
RSA加密算法
感谢大神的总结:https://www.jianshu.com/p/9785bd492a6e
如有错误,请多指正!
网友评论