代码改变世界

1 - 数字签名

2018-05-16 01:47  乱月灵猫  阅读(183)  评论(0编辑  收藏  举报
数字签名是用于验证完整性的,数据本身是否加密不属于数字签名的控制范围
 
作用:
    (1)准确认证发送方身份(假冒不了发送方签名)
    (2)确保消息完整性
 
核心技术:数字摘要 + 非对称加密
 
非对称加密(RSA) + 数字摘要(Hash算法,MD5,SHA1) -> 数字签名
 
报文,用Hash(MD5/SHA1)生成报文摘要,然后用私钥对这个摘要进行加密,加密后的摘要将作为报文签名和报文一起发送给接收方,接收方用同样的Hash生成报文摘要,然后对传过来的签名进行解密,得到的结果与自己生成的进行对比,看是否相同,如果不同,说明信息被篡改过。
 
  数字签名技术就是对“非对称密钥加解密”和“数字摘要“两项技术的应用,它将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。