在数字签名技术中,出现了下面两种行为。

  • 生成消息签名的行为

  • 验证消息签名的行为

生成消息签名这一行为是由消息发送者Alice来完成的,也称为“对消息签名”。生成签名就是根据消息内容计算数字签名的值,这个行为意味着“我认可该消息的内容”。

验证数字签名这一行为一般是由消息的接收者Bob来完成的,但也可以由需要验证消息的第三方来完成,这里的第三方被命名为验证者Victor。验证签名就是检查该消息的签名是否真的属于Alice,验证的结果可以是成功或失败,成功就意味着这个签名是属于Alice的,失败则意味着这个签名不属于Alice的。

在数字签名中,生成签名和验证签名这两个行为需要使用各自专用的密钥来完成。

Alice使用“签名密钥”来生成消息的签名,而Bob和Victor则使用“验证签名”来验证消息的签名。

数字签名对签名密钥和验证密钥进行了区分,使用验证密钥是无法生成签名的。此外,签名密钥只能由签名人持有,而验证密钥则是任何需要验证签名的人都可以持有。

在公钥密码中,密钥分为加密密钥和解密密钥,用加密密钥无法进行解密。此外,解密密钥只能由需要解密的人持有,而加密密钥则是任何需要加密的人都可以持有。从这一点来看,数字签名和公钥密码很像。

实际上,数字签名和公钥密码有着非常紧密的联系,简而言之,数字签名就是通过公钥密码“反过来用”而实现的。

下面来将密钥的使用方式总结成一张表。

数字签名的生成和验证相关推荐

  1. C++ | 数字签名的生成与解析

    目录 一.数字签名的生成 1.准备工作 2.生成.cer证书 3.添加.cer证书 4.给exe添加数字签名 5.查看exe的数字签名 二.数字签名解析 1.源码 2.运行结果 最近封装SDK,需要实 ...

  2. 生成随机验证图片--ASP.NET中常用代码之二

    生成随机验证图片(转载) 使用方法: 1/**////调用函数将验证码生成图片 2            this.CreateCheckCodeImage(GenerateCheckCode()); ...

  3. tp中php验证码程序,thinkPHP 验证码生成与验证

    您现在的位置是:网站首页>>PHP>>thinkPHP thinkPHP 验证码生成与验证 发布时间:2018-12-06 13:34:11作者:wangjian浏览量:842 ...

  4. jwt令牌_JWT –生成和验证令牌–示例

    jwt令牌 JWT提供了一种非常有趣的方式来表示可以验证和信任的应用程序之间的声明. 我的目标是展示一个小的样本,它使用出色的Nimbus JOSE + JWT库来生成和验证令牌. 总览 进行介绍的最 ...

  5. JWT –生成和验证令牌–示例

    JWT提供了一种非常有趣的方式来表示可以验证和信任的应用程序之间的声明. 我的目标是展示一个小的样本,它使用出色的Nimbus JOSE + JWT库来生成和验证令牌. 总览 进行介绍的最佳地点之一是 ...

  6. tp5 JWT生成token验证接口安全、防止高频请求

    1.composer安装 jwt composer require lcobucci/jwt 3.3 2.在extend/tools/jwt目录下创建Token.php文件 注意 extend目录下t ...

  7. (六)区块的生成、验证及挖矿

    转载,作者:Alphabet_666 1. 交易的传播和验证 交易包含两部分:n个输入个m个输出,其中n>=0,m>0 输入=要花费的UTXO+解锁脚本 输出=UTXO(币的数量+锁定脚本 ...

  8. 大话卫星导航中的信号处理系列文章——GPS信号L1频点的中频数据生成与验证

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 大话卫星导航中的信号处理系列文章--GPS信号L1频点的中频数据生成与验证 需求 扩频码的生成 其他 验证 需求 这篇文章,主要记录我 ...

  9. 验证码的生成与验证,控制层工具

    这里用一个控制层工具来提供验证码的生成与验证,其中验证码生成以后是保存在session中,代码没有区分类去写那些验证码的生成函数,不过整合到控制层中,方便浏览与阅读,doget是判断和生成验证码的入口 ...

  10. Django项目实战——8—(判断用户是否登录并返回JSON、Django发送邮件的配置、生成邮箱验证链接、验证邮箱后端逻辑)

    1.判断用户是否登录并返回JSON 重要提示: 只有用户登录时才能让其绑定邮箱. 此时前后端交互的数据类型是JSON,所以需要判断用户是否登录并返回JSON给用户. 方案一: 使用Django用户认证 ...

最新文章

  1. 麦肯锡AI应用报告:深度学习是蓝海还是深坑?
  2. VS2017报错头文件unistd.h
  3. JAVA通信编程(三)——TCP通讯
  4. 魅族mx5游戏模式小熊猫_您不知道的5大熊猫技巧
  5. php对象好用吗,在数据库中使用对象的好处_php
  6. Ubuntu 16.04退出anaconda环境
  7. C#中const和readonly的区别
  8. 双数组trie树的基本构造及简单优化
  9. Seaborn学习记录(1)
  10. 使用Seay进行代码安全审计
  11. 计算机原理视频罗克露优酷,计算机组成原理42讲 电子科技大学 罗克露
  12. 渗透函数实现排序的函数层次聚类或者叫做凝
  13. 红星美羚育儿经:宝宝上火,是奶粉的祸?
  14. 安保公司的商业计划书
  15. Platform 设备驱动:platform_get_drvdata 与 platform_set_drvdata
  16. python汉诺塔递归算法流程图,python实现汉诺塔递归算法经典案例
  17. 编译程序与解释程序的区别
  18. Java——super关键字
  19. 【华人学者风采】Xifeng Yan 加州大学圣巴巴拉分校
  20. Pycharm下载、安装、配置及校验 — 全程图文详细教程

热门文章

  1. origin柱状图显示具体数据值
  2. 常用youtube快捷键,让看视频学技术起飞
  3. 内存优化-service优化
  4. windows自动更新下载的目录
  5. 网利友联CEO王卫平受邀坐客飞官七直播间
  6. 中国船舶制造行业市场运行动态及发展前景分析报告2022-2028年
  7. 计算机电脑怎么开热点,电脑怎么设置wifi热点共享
  8. Linux服务器建立IP隧道,变更访问出口
  9. 三插头内部结构图_两脚插头和三脚插头区别是什么 插座的结构特点有哪些
  10. 山大往年自招计算机系试题,山大自招现场:考生笔试说“容易”体测喊“难”...