数字签名的用途:数字签名是用来验证服务端与客户端之间发送的报文信息是否被篡改了。

数字签名的原理:服务端对客户端发送一个报文,服务端先用Hash算法对报文进行计算得到的值我们叫做信息摘要,接着用服务端的私钥对信息摘要进行加密得到密文我们叫做数字签名,服务器就把报文+数字签名一起发送给客户端,客户端先对数字签名进行解密,得到信息摘要,在对报文进行Hash计算,那计算值和信息摘要进行对比,两者相同就证明报文没有被修改。

注:这里的Hash算法一定是一种不可逆的算法,而且hash算法当你改变原文一处内容,计算的hash值也会更改。而且服务端的私钥是唯一,因为这里用的是非对称加密。

非对称加密文章:点击打开链接

缺点:在于服务端的公钥是对外公开,客户端获取公钥的途径是否是安全,这里存在公钥可能已经被第三方掉包,客户端以为拿到的是服务端的公钥,实际上是拿到的第三方的公钥,第三方冒充服务端与客户端进行信息交互,骗取客户端的重要信息。

疑问:事实上我们为什么要对报文进行Hash计算呢?如果我们只是把报文加密附在报文中一样也可以验证报文是否被篡改,因为私钥是唯一的。

答案:因为非对称加密算法非常消耗计算机性能的,而且我们的报文往往也会很长更会加大这种消耗,同时公钥解密也是非常消耗计算机性能,所以我们选择对报文进行Hash算法计算。

解决办法:服务端去认证中心申请数字证书,用来保证公钥的安全性,防止自己的公钥被掉包。

这里我们在举个例子:

“客户”->“服务器”:你好

“服务器”->“客户”:你好,我是服务器

“客户”->“服务器”:向我证明你就是服务器

“服务器”->“客户”:你好,我是服务器 {信息摘要}[私钥|RSA]

这里客户端收到信息你好,我是服务器{信息摘要}[私钥|RSA],对报文“你好,我是服务器”用RSA算法进行求值得到H,在用公钥对{信息摘要}进行解密得到H1,比对H和H1的值,相同就表示报文没有被篡改。


注:你好,我是服务器 {信息摘要}[私钥|RSA]这个内容是:{信息摘要}是对“你好,我是服务器”报文进行RSA算法进行计算得来值,在用私钥进行加密。

浅谈什么是“数字签名”相关推荐

  1. Android应用安全开发之浅谈加密算法的坑

    <Android应用安全开发之浅谈加密算法的坑> 作者:阿里移动安全@伊樵,@舟海 阿里聚安全,一站式解决应用开发安全问题     Android开发中,难免会遇到需要加解密一些数据内容存 ...

  2. JackHttp -- 浅谈编码、加密(对称加密,非对称加密,Hash算法)

    如果你还不清楚 JackHttp 是什么,请戳这里!!! JackHttp 是一个网络框架系列,为什么还要分享编码和加密呢?主要有如下几个原因: HTTP 在网络传输过程中是明文的. HTTP 在网络 ...

  3. 浅谈数字证书的今生前世

    浅谈数字证书的今生前世 一.概述 1.1.加密 1.2.密钥 1.3.加密算法 1.3.1.对称加密 1.3.2.非对称加密 二.数字签名和数字证书的出现 2.1."故事"背景 2 ...

  4. 浅谈密码学的历史发展过程

    浅谈密码学的历史发展过程 前言 这是大三下学期选学的网络信息安全课程的期末作业,这个学期就是疫情爆发期间上网课的那段时期... 摘要 密码对我们都不陌生,在日常生活中也接触过密码,日常生活中所说的密码 ...

  5. 浅谈IM软件如何建立安全socket连接、登录

    ----------------------------------------------------欢迎查看IM软件业务知识<专栏>-------------------------- ...

  6. 【技术分享】Android应用安全开发之浅谈加密算法的坑

    <Android应用安全开发之浅谈加密算法的坑> 作者:阿里移动安全@伊樵,@舟海 阿里聚安全,一站式解决应用开发安全问题    Android开发中,难免会遇到需要加解密一些数据内容存到 ...

  7. Android安全开发之浅谈加密算法的坑

    Android安全开发之浅谈加密算法的坑 作者:伊樵.舟海@阿里聚安全 Android开发中,难免会遇到需要加解密一些数据内容存到本地文件.或者通过网络传输到其他服务器和设备的问题,但并不是使用了加密 ...

  8. 浅谈国密算法 SM1、SM2、SM3、SM4

    浅谈国密算法 国密算法是我国自主研发创新的一套数据加密处理系列算法.从SM1-SM4分别实现了对称.非对称.摘要等算法功能.特别适合应用于嵌入式物联网等相关领域,完成身份认证和数据加解密等功能.当然, ...

  9. 浅谈DES、RAS、SHA-256与SM1、SM2、SM3、SM4区别

    我们今天浅谈一下,目前密码学中应用最为广泛的一些加密算法.并对这些算法做一些比较. 一.概念介绍 国密算法是什么? 国密算法是由国家密码局发布,包含SM1.SM2. SM3. SM4. SSF33算法 ...

最新文章

  1. java01背包问题算法_经典动态规划--01背包问题
  2. srping atomikos 的jta 事物管理
  3. CentOS/RHEL6.5中使用WordPress快速建站
  4. OS中atomic的实现解析
  5. C语言高级编程:指针变量p指向的地址与p自身的地址
  6. idea测试单元错误_不要单元测试错误
  7. 唐山师范学院计算机二级报名,2017年3月唐山师范学院计算机等级考试报名时间(河北)...
  8. cocos2dx 父元素影响子元素
  9. 在Javascript中闭包(Closure)
  10. html语言 大全,HTML语言大全
  11. 拜董明珠“闺蜜”刘姝威所赐 广东证监局向美的方洪波出具警示函
  12. 【C++】C++类和对象
  13. java 高性能代码_[Java教程]Javascript高性能代码(一)
  14. 索益Mike的excel商品操作
  15. 领域驱动设计DDD:贫血模型和充血模型(比较重要)
  16. c加加中print是什么意思_Java中的null到底是什么意思?
  17. 【数据库】一篇文章搞掂:Oracle数据库
  18. oracle截取6位,Oracle函数获取IDCARD中年龄
  19. .net 如何引用迅雷组件
  20. Java—飞花的糖果

热门文章

  1. SERDES关键技术总结
  2. 2023年江苏专转本考试成绩将于本月中旬公布
  3. 腾讯动漫 漫画图片js解密
  4. UBUNTU 12.04 安装SOCKS5代理服务器DANTE-SERVER
  5. java编写中显示内部外部,jdk安装好后在cmd上输入java正常,输入javac就显示不是内部外部命令...
  6. Python中pyautogui安装-用pyautogui写脚本让鼠标自动点击给摩尔庄园毛毛树浇水施肥
  7. 【iOS】计算器实现
  8. java基于servlet开发的旅游日志博客系统用来记录旅行的
  9. 常用的moment date-fns处理时间格式的关键词
  10. W5300E01-ARM用户手册版本1.0(一)