第一种用法:公钥加密,私钥解密。---用于加解密
第二种用法:私钥签名,公钥验签。---用于签名
有点混乱,总结一下,你只要想:
- 既然是加密,那肯定是不希望别人知道我的消息,所以只有我才能解密,所以可得出公钥负责加密,私钥负责解密;
- 既然是签名,那肯定是不希望有人冒充我发消息,只有我才能发布这个签名,所以可得出私钥负责签名,公钥负责验证。
换种说法,公钥和私钥是一对,谁都可以加解密,只不过谁加密谁解密是看情景来用的。
- 第一种情景是签名:使用私钥加密,公钥解密,用于让所有公钥所有者验证私钥所有者的身份。并且用来防止私钥所有者发布的内容被篡改,但是不用来保证内容不被他人获得。
(批注:“防止私钥所有者发布的内容被篡改” 主要由于“签名”是会对已经内容加密的内容再进行一次加密,相当于二次加密(套壳);所以只能保证身份验证和加密内容的完整性(因为如果被篡改了,是无法对验证签名的完整性),并不能保证加密内容会不会被窃取)
- 第二种情景是加密:用公钥加密,私钥解密。用于向公钥所有者发布信息,这个信息可能被他人篡改,但是无法被他人获得。
(批注:“这个信息可能被他人篡改,但是无法被他人获得” 是指私钥只掌握在某个人手里,这段信息可能会被人窃取过去,但也是用公钥加密后的信息,没有私钥解密,就无法知道信息的具体内容)
比如加密情景:
如果甲想给乙发一个安全的保密的数据,那么应该甲乙各自有一个私钥,甲先用乙的公钥加密这段数据,再用自己的私钥加密这段加密后的数据.最后再发给乙,这样确保了内容即不会被读取,也不会被篡改.