在一些系统之间联机交互,经常会用非对称加密算法来做签名/验签、加密/解密。一些开发人员可能经常会搞不清,到底是用公钥来签名还是用私钥来签名,是用公钥来加密还是用私钥来加密:
记住:
1、私钥签名、公钥验签
2、公钥加密、私钥解密
一、签名/验签:指发起方对自己发送报文用自己私钥进行签名,接收方接收到报文之后用发送方的公钥进行验签。
为什么是用私钥签名,不是用公钥来签名?
因为签名/签约作用主要是用来验证请求的合法性,也就是说能识别出发送方合法性。那就只能用发送方自己私钥来签名。
二、加密/解密:是指发起方采用接收方公钥进行加密,接收方用自己私钥进行解密。
为什么是用公钥加密,不是用私钥加密?
因为是敏感信息才需要加密,那么必须保证加密后信息,之后接收方能解密,就必须使用私钥来解密。如果用私钥来解密,公钥来解密,就以为在是加密信息是公共。