码迷,mamicode.com
首页 > 其他好文 > 详细

<数字签名是什么>笔记

时间:2018-02-07 19:43:14      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:pos   用户注册   signature   gpo   解密   理解   发送数据   html   digital   

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

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值再用私钥加密得到的一组数据]

<数字签名是什么>笔记

标签:pos   用户注册   signature   gpo   解密   理解   发送数据   html   digital   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!