数字签名

作用:检验jar包是否为公钥发布者的发布的,并且没有被篡改。

过程:

1,作者使用散列算法对jar包生成散列(指纹);

2,作者使用私钥对散列进行加密,

3,将jar包和签名后的散列一起发布。

wKioL1j4w9PDBUIPAALs0dbPd9c204.png


4,用户使用作者发布的公钥解密散列,得到jar包的指纹;

5,用户使用散列算法对jar生成指纹;

6,对比两个指纹是否一致。

wKiom1j4xVyCHOAGAAK8vHsVd_8195.png

数字证书:权威仍证机构使用自己的私钥对申请认证的用户的公钥进行签名的产物。

作用:检验用户得到的公钥的发布者是否可信

过程:

1,申请者携带材料到认证机构申请数字证书(即让认证机构为其公钥签名);

2,认证机构对其进行审核,审核通过后,使用私钥对申请者的公钥签名,申请者得到数字证书;

3,申请者发布jar及数字证书;

4,用户下载jar及数字证书;

5,用户使用认证机构的公钥对数字证书解密,得到公钥发布者的公钥的指纹;

6,使用散列算法对公钥进行散列,生成指纹;

7,对比公钥的两个指纹是否一致,若一致,使用数字证书没有被篡改,即认证机构对该公钥进行了签名,说明该公钥是可靠的。