图文讲解签名和验签详见博客:https://blog.csdn.net/w05980598/article/details/80585276
1、密钥
密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。
2、加密
根据加密和解密使用的密钥是否相同,可以分为两种加密方式:
- 对称加密:加密和解密使用的密钥相同
- 非对称加密:加密和解密使用的密钥不同,分为公钥(Public Key)和私钥(Private Key),在非对称加密中,使用公钥加密的信息,只有私钥才能解密
3、签名
对信息使用 Hash 算法得到摘要,将摘要使用私钥加密,得到的结果就是签名。
4、验签
对方收到消息后,使用公钥对签名解密,得到摘要,然后将接收到的信息使用 Hash 算法获取的摘要与解密的摘要进行对比,若相同那么接收到的是未篡改的信息。
5、证书
为了防止服务器被冒充,在生成密钥(公钥和私钥)后,到证书中心(CA)将其公钥、其他信息使用证书中心的私钥对其加密,得到的结果就是证书。
在后续发送消息时,将消息、签名、证书一并发送,对方先使用 CA 的公钥对证书解密,获取发送者的公钥,在进行验签。