RSA加密与加签
首先强调加密与加签不同,加密是为了保证请求中的敏感数据不泄露,加签是为了保证请求不被伪造。
举个栗子🌰
故事背景
女神小红和他的前男友小军分手了,另寻新欢找了小明做新男友。
敏感数据泄露
小明写了一封情书给小红,为了表达自己的忠诚,小明直接在信中写出了微信账号、密码,让小红可以随便查看,可信中途被小军拦截了,小军打开信看到了微信账号密码于是把小明号给盗了。
加密
小明又写了一封情书给小红,为了情书里面的内容不被篡改,所以让小红生成了一对密钥,并且把公钥给了小明,小明使用公钥对情书加了密,并且发给小红,这样就只有小红使用私钥才能解密并且查看情书的内容。
被伪造
小军又拦截了小明的情书,并且也拿到了小红的公钥,现在虽然他看不了情书的内容,但小军想到一个办法:自己写了一封分手信,同样用公钥加密发给了小红,小红收到还以为是小明写给他的分手信,于是就分手了。
加签
后来小红有又找了一个男朋友叫小白,小白学聪明了,他不仅把情书用小红给的公钥加密,还自己生成了一对密钥,并且把公钥给了小红,然后用自己的私钥把已经加密的情书再加签。小军故技重施,同样伪造了一封分手信给小红,小红收到以后就试着用小白给的公钥解密发现解不开来,于是知道了是小军搞得鬼,就把伪造的信丢掉了。
总结
加密:发送者使用接收者的公钥加密,接收方使用自己的私钥解密,为了保证数据无法被其他人看到,
加签:发送者使用自己的私钥加密,接受者使用发送者的公钥验签,为了保证数据不被篡改。