第一种用法:公钥加密,私钥解密。---用于加解密
第二种用法:私钥签名,公钥验签。---用于签名

有点混乱,总结一下,你只要想:

  • 既然是加密,那肯定是不希望别人知道我的消息,所以只有我才能解密,所以可得出公钥负责加密,私钥负责解密;
  • 既然是签名,那肯定是不希望有人冒充我发消息,只有我才能发布这个签名,所以可得出私钥负责签名,公钥负责验证。

换种说法,公钥和私钥是一对,谁都可以加解密,只不过谁加密谁解密是看情景来用的。

  • 第一种情景是签名:使用私钥加密,公钥解密,用于让所有公钥所有者验证私钥所有者的身份并且用来防止私钥所有者发布的内容被篡改,但是不用来保证内容不被他人获得。

批注:“防止私钥所有者发布的内容被篡改” 主要由于“签名”是会对已经内容加密的内容再进行一次加密,相当于二次加密(套壳);所以只能保证身份验证和加密内容的完整性(因为如果被篡改了,是无法对验证签名的完整性),并不能保证加密内容会不会被窃取)

  • 第二种情景是加密:用公钥加密,私钥解密。用于向公钥所有者发布信息,这个信息可能被他人篡改,但是无法被他人获得。

批注:“这个信息可能被他人篡改,但是无法被他人获得” 是指私钥只掌握在某个人手里,这段信息可能会被人窃取过去,但也是用公钥加密后的信息,没有私钥解密,就无法知道信息的具体内容)

比如加密情景:
如果甲想给乙发一个安全的保密的数据,那么应该甲乙各自有一个私钥,甲先用乙的公钥加密这段数据,再用自己的私钥加密这段加密后的数据.最后再发给乙,这样确保了内容即不会被读取,也不会被篡改.