RSA加密、解密、签名、验签介绍

参考链接:https://www.cnblogs.com/pcheng/p/9629621.html

 

RAS简介

RSA加密是非对称加密,由一对秘钥进行完成加密解密,分别称为公钥和私钥,公钥加密,私钥解密,RSA可以完成加密和签名;

 

加密与签名的区别

加密是为了防止信息被泄露,签名是为了防止信息被篡改;

 

 

RSA加密过程:

假如B要发消息给A,首先A在本地生产一对秘钥,公钥和私钥,并将公钥发送给B,B使用公钥对消息进行加密,然后传输给A,A接收到消息后在本地使用私钥解密;

缺点:这种加密过程保证了消息不被泄露,但是避免不了消息被篡改,假如B发送给A的消息被黑客劫持,他通过公钥,自己伪造一条消息,通过公钥加密,发送给A,这样A收到的消息就不是B发送给A的了;

 

RSA签名过程:

A发送消息给B的时候,用私钥对消息进行加签,将加签后的消息与消息本体发给B,B使用公钥进行验签,如果验签出来的内容和消息本身一致,证明消息才是A回复的;

这样也会有一个问题,当黑客获取到消息后,可以使用公钥验签,来查看消息,并不能防止消息泄露;

 

总结:公钥加密、私钥解密、私钥签名、公钥验签。

 

所以在实际应用中,要根据情况使用,也可以同时使用加密和签名,比如A和B都有一套自己的公钥和私钥,当A要给B发送消息时,先用B的公钥对消息加密,再对加密的消息使用A的私钥加签名,达到既不泄露也不被篡改,更能保证消息的安全性。

 

A发送消息给B时:

A:加密+加签(B公钥加密,A私钥加签)

B:验签+解密(A公钥验签,B私钥解密)

假如中间消息被劫持,即使有A,B的公钥:对A发送给B的消息,因为没有B的私钥,所以消息不会泄露;因为没有A的私钥,所以消息不会篡改。

签名的时候,会泄露:因为签名黑客可以通过公钥验签,获取消息内容;

加密的时候,会被篡改:可以拦截消息,将自己定义的信息使用公钥加密传递给对方;

你可能感兴趣的:(RSA加密、解密、签名、验签介绍)