RSA是一种非对称性加密算法。通过一对密钥完成加密和解密的过程。
加密是为了防止信息被泄露,而签名是为了防止信息被篡改。
var A = 客户端
var B = 服务端
1、客户端向服务端发送一条消息
B生成一对密钥(公钥和私钥),私钥不公开,自己保留。公钥公开。
B将公钥传递给A,A用B的公钥将消息加密。
B接收到加密后的消息,用自己的私钥进行解密。
2、服务端收到客户端发的消息后,需要进行回复“收到”。
B生成一对密钥(公钥和私钥),私钥不公开,自己保留。公钥公开。
B用自己的私钥对消息加签,形成签名,并将加签的消息和消息本身一起传递给A。
A收到消息后,在获取B的公钥进行验签,如果验签出来的内容与消息本身一致,证明消息是B回复的。