看完这篇文章,我奶奶都懂了https的原理……( 十 )

证书颁发了 , 可是又怎么防止伪造 , 怎么保证在传输过程中不被篡改呢?万一小王截获到数字证书 , 把公钥改成自己的那不是依然无法保证安全了么?这就需要数字签名了!

数字签名

与公司签过劳动合同的朋友应该都知道 , 在合同信息的填写中 , 是不能有涂改的 , 否则需要重新填写!并且在最后需要甲方和乙方签名并且盖章 。 一旦签名盖章后的合同就具有了法律的效力 , 合同就不能再修改 。 签名和盖章操作就是防止合同伪造 , 规定不能修改就防止了合同被篡改!

在实际生活中签名、盖章操作是实实在在的动作 , 作用在具体某个物体上的!但是我们的数字证书本身就是虚拟的 , 怎么去给一个虚拟的证书签名盖章呢?数字签名又是什么机制呢?

我们在做权限系统的时候 , 存储用户密码的时候都会经过MD5计算摘要后存储 , 在登录的时候计算用户填写的密码的MD5摘要与数据库存储的摘要进行对比 , 如果一致则密码正确 , 否则登录失败!MD5是不可逆的 , 且不同的数据计算出来的摘要是不一样的(当然也有极小的概率会hash碰撞) , 基于这个特性 , 就有了数字签名的思路 。

推荐阅读