参考链接: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的私钥,所以消息不会篡改。
签名的时候,会泄露:因为签名黑客可以通过公钥验签,获取消息内容;
加密的时候,会被篡改:可以拦截消息,将自己定义的信息使用公钥加密传递给对方;