1、单钥加密(对称加密)
同一个密钥可以同时用作信息的加密和解密
2、双钥加密(非对称加密)
(精简版)https://blog.youkuaiyun.com/21aspnet/article/details/7249401
(详细版)https://blog.youkuaiyun.com/TheSkyLee/article/details/108699243
(1)公钥和私钥是成对的,它们互相解密。
(2)公钥加密,私钥解密
公钥公开他人,用于他人加密文件传输给自己,只有自己有私钥可以解密;
(3)私钥签名,公钥验签
对原数据使用hash函数得到摘要,私钥加密摘要得到数字签名,附带和原数据一起发送。他人收到信息后,对原数据使用hash、用公钥解密签名,对比两者是否一致,即可验证身份。
(4)RSA公钥加密算法
基于一个十分简单的数论事实:将两个大素数相乘十分容易,但想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
(5)数字证书
证书颁发机构(CA)用自己的私钥,对证书申请者的公钥及其相关信息加密(机构名称、有效期、持有者等等),生成“数字证书”。
3、https加密原理
https://blog.youkuaiyun.com/guizaijianchic/article/details/77961418
非对称密钥用于加密握手过程中生成的对称密钥;
对称密钥用于加密真正传输的数据;
HASH算法用于验证数据的完整性。
https握手步骤(精简版)
(1)客户端发送请求给服务器,服务器生成非对称密钥并发送公钥给客户端。
(2)客户端生成对称密钥并用服务器发送过来的公钥进行加密,将加密后的对称密钥发送给服务器。
(3)服务器用私钥对其进行解密,因此双方拥有了对称密钥,可用其进行通信。
我是江鸟,即将迈向社会的程序猿,欢迎交流~