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

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

<数字签名是什么>笔记的更多相关文章

  1. HTML+CSS笔记 CSS笔记集合

    HTML+CSS笔记 表格,超链接,图片,表单 涉及内容:表格,超链接,图片,表单 HTML+CSS笔记 CSS入门 涉及内容:简介,优势,语法说明,代码注释,CSS样式位置,不同样式优先级,选择器, ...

  2. CSS笔记--选择器

    CSS笔记--选择器 mate的使用 <meta charset="UTF-8"> <title>Document</title> <me ...

  3. HTML+CSS笔记 CSS中级 一些小技巧

    水平居中 行内元素的水平居中 </a></li> <li><a href="#">2</a></li> &l ...

  4. HTML+CSS笔记 CSS中级 颜色&长度值

    颜色值 在网页中的颜色设置是非常重要,有字体颜色(color).背景颜色(background-color).边框颜色(border)等,设置颜色的方法也有很多种: 1.英文命令颜色 语法: p{co ...

  5. HTML+CSS笔记 CSS中级 缩写入门

    盒子模型代码简写 回忆盒模型时外边距(margin).内边距(padding)和边框(border)设置上下左右四个方向的边距是按照顺时针方向设置的:上右下左. 语法: margin:10px 15p ...

  6. HTML+CSS笔记 CSS进阶再续

    CSS的布局模型 清楚了CSS 盒模型的基本概念. 盒模型类型, 我们就可以深入探讨网页布局的基本模型了.布局模型与盒模型一样都是 CSS 最基本. 最核心的概念. 但布局模型是建立在盒模型基础之上, ...

  7. HTML+CSS笔记 CSS进阶续集

    元素分类 在CSS中,html中的标签元素大体被分为三种不同的类型:块状元素.内联元素(又叫行内元素)和内联块状元素. 常用的块状元素有: <div>.<p>.<h1&g ...

  8. HTML+CSS笔记 CSS进阶

    文字排版 字体 我们可以使用css样式为网页中的文字设置字体.字号.颜色等样式属性. 语法: body{font-family:"宋体";} 这里注意不要设置不常用的字体,因为如果 ...

  9. HTML+CSS笔记 CSS入门续集

    继承 CSS的某些样式是具有继承性的,那么什么是继承呢?继承是一种规则,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代(标签). 语法: p{color:red;} <p> ...

  10. HTML+CSS笔记 CSS入门

    简介: </span>年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的<span>脚本解释程序</span>,作为ABC语言的一种继承. & ...

随机推荐

  1. WebApi升级到2.0以后的XmlDocumentationProvider

    using System; using System.Globalization; using System.Linq; using System.Reflection; using System.W ...

  2. ASCII到Unicode到UTF-8

    1.很久以前使用的是ASCII:只有一个字节,也就是2的8次方,可以表示256个不同状态,电脑最初起源于美国,够用了,刚开始只是使用了127位,后来后面的部分被他们用来表示一些横线字符之类的128-2 ...

  3. Deepin 15.4 更改为 阿里云源

    自带的 软件包源 不好用,卡顿严重,准备替换它: 方式一:deepin linux 如何更新或者更换软件源(注意:好像不起作用) 方式二:[推荐]利用 阿里云 提供的镜像快速更换本地的 yum 源 ( ...

  4. Linux内存管理学习资料

    下面是Linux内存管理学习的一些资料. 博客 mlock() and mlockall() system calls. All about Linux swap space 逆向映射的演进 Linu ...

  5. js-将一个对象转换成一个新的对象

    /** * 对象转换成一个新的对象 * @param object * @private */ function _yh_tranformObject(object){ if(object == nu ...

  6. Gradle sync failed: /Applications/Android Studio.app/Contents/gradle/gradle-2.14.1/lib/plugins/gradle-diagnostics-2.14.1.jar (No such file or directory) Consult IDE log for more details (Help | Sh

    上面出现的错误是,我从Android Studio 2.2 升级到2.3后,出现的问题, 找到方法: http://stackoverflow.com/questions/30526613/andro ...

  7. Get the client's IP address in socket.io

    From: https://www.wentong.org/codex/question-2018081564702.html When using socket.IO in a Node.js se ...

  8. table表格内容溢出处理

    直接在table标签加上  style="table-layout:fixed;word-wrap:break-word;"

  9. iOS NSDictionary 转Json 去掉换行去掉空格

    //dic 转json 如果用系统自带的会出现空格. + (NSString *)returnJSONStringWithDictionary:(NSDictionary *)dictionary{ ...

  10. Net Core 的配置模式以及热重载配置

    https://www.cnblogs.com/Leo_wl/p/8527535.html https://blog.csdn.net/ma_jiang/article/details/5350198 ...