首页 > 代码库 > 公钥与私钥和加签与验签

公钥与私钥和加签与验签

在公司查问题时遇到一个关于公钥与私钥和加签与验签的问题,当时不太明白,后来弄明白了感觉挺有意思的,所以想分享一下。

  为了说明问题,假设现在有a,b,c三家公司,彼此都有业务往来。

  假设a,b公司都会向c公司发送报文,而c公司为了能够保证报文的安全性便会给a,b公司一个公钥(不是什么公司都能向自己发报文的,必须是自己指定的公司才可以),自己会有一个对应的私钥,而a,b公司在向c公司发送报文时就可以使用c公司提供的公钥对报文进行加密(公钥主要用来进行加密),当c公司取得报文后就会使用自己的私钥对报文进行解密(私钥主要用来解密),如果解密成功则表示该报文是正确的,可以进行接收(这就是公钥与私钥的使用)。

  然而当c取得了报文后,a和b公司都可以向自己发送报文,那怎么判断这个报文是a的还是b的呢,这就要用到加签与验签了。

  为了能够表明自己的身份,a或b公司便会向自己的报文里边加入一个签名,同时都会给c公司一个自己的公钥用于对自己的签名进行解密用的,于是当c公司得到报文后,假设使用a提供的公钥对报文中的签名进行解密,如果解密成功则说明该报文是a公司提供的(这样便证明了身份)。

 总结:公钥与私钥是用来加密与加密的,加签与验签是用来证明自己身份的。

公钥与私钥和加签与验签