在公司查问题时遇到一个关于公钥与私钥和加签与验签的问题,当时不太明白,后来弄明白了感觉挺有意思的,所以想分享一下。
为了说明问题,假设现在有a,b,c三家公司,彼此都有业务往来。
假设a,b公司都会向c公司发送报文,而c公司为了能够保证报文的安全性便会给a,b公司一个公钥(不是什么公司都能向自己发报文的,必须是自己指定的公司才可以),自己会有一个对应的私钥,而a,b公司在向c公司发送报文时就可以使用c公司提供的公钥对报文进行加密(公钥主要用来进行加密),当c公司取得报文后就会使用自己的私钥对报文进行解密(私钥主要用来解密),如果解密成功则表示该报文是正确的,可以进行接收(这就是公钥与私钥的使用)。
然而当c取得了报文后,a和b公司都可以向自己发送报文,那怎么判断这个报文是a的还是b的呢,这就要用到加签与验签了。
为了能够表明自己的身份,a或b公司便会向自己的报文里边加入一个签名,c收到报文后对其进行验签(这也是有一个加密与解密的过程,这样便证明了身份)。
总结:公钥与私钥是用来加密与加密的,加签与验签是用来证明自己身份的。