首页 > 其他 > 详细

<数字签名是什么>笔记

时间:2018-02-07 18:35:10      阅读:205      评论:0      收藏:0      [点我收藏+]

此篇是看   数字签名是什么?    的理解与笔记

1. 使用非对称密钥发送数据到服务器。 发送方(C端)使用公钥对自己的数据进行加密,接收方(S端)使用私钥解密,即使发送出去的数据被拦截到,也不知道明文是什么,因为使用公钥加密的数据只有私钥才能解开
比如用户注册的时候,为了保护用户的密码不被泄露,在C端用公钥对密码进行加密,在S端用私钥解密, 然后S端返回一个明文信息给C端

2. 针对第一步S端发给C端的明文信息,如果被黑客拦截篡改,那么C端是不知道的。比如S端返回给C端的信息是 "注册成功!"  而被篡改成 "注册失败!"  这时C端是不知道的。
为了解决这个问题。S端先将数据进行hash运算,得到一个hash值(比如取MD5值),再将这个hash值用私钥加密,附加在明文信息的最后,即是数字签名
C端收到S端数据后,[1]取出后面的数字签名,[2]用公钥将数字签名解密,[3]对明文信息进行hash运算,[4]对比自己运算出来的hash值和数字签名解密出来的hash值是否一致,如果一致,表示数据没有篡改,否则,数据被篡改

考虑上面的过程,如果S端发给C端的带数字签名的明文数据被黑客拦截,那么黑客无法做到在修改过明文信息后而不被C端发觉, 因为如果黑客修改明文,那么被篡改的数据的hash值与签名的hash值一定不同,而黑客又无法对篡改过的数据进行数字签名,因为数字签名是用私钥对hash值加密,而黑客没有私钥。 数字签名是 [明文的hash值再用私钥加密得到的一组数据]

<数字签名是什么>笔记

原文:https://www.cnblogs.com/emyueguang/p/8427625.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!