当前位置: 首页 > java >正文

数字签名(Digital Signature)

数字签名(Digital Signature)是一种用来验证数据完整性、身份认证和防抵赖性的加密技术,广泛用于电子合同、区块链、软件发布、电子邮件等场景。


✍️ 一、数字签名的作用

  1. 身份认证
    确保消息确实来自某个特定的发送者。

  2. 完整性校验
    检查消息是否在传输过程中被篡改。

  3. 防抵赖(不可否认性)
    发送者不能否认其发送的内容,因为只有他持有私钥。


🔐 二、数字签名的工作原理

数字签名基于非对称加密(如 RSA、ECDSA)和哈希算法(如 SHA-256),流程如下:

✅ 签名过程(发送端):

  1. 原始数据 → 使用哈希算法 → 生成消息摘要

  2. 消息摘要 → 使用发送者的私钥加密 → 得到数字签名

  3. 将:原始数据 + 数字签名 一起发送给接收者。

🔎 验签过程(接收端):

  1. 接收到原始数据和数字签名。

  2. 发送者的公钥解密数字签名 → 得到签名时的消息摘要

  3. 对收到的原始数据重新计算哈希 → 得到本地摘要

  4. 比较两者摘要:

    • 若一致,则说明数据未被篡改,签名者身份可信;

    • 若不一致,则签名无效或数据已被篡改。


🧠 三、举个简单例子

假设 Alice 向 Bob 发送一份文件,并用她的私钥签名:

  • Alice 计算文件哈希值,比如得到:A1B2C3...

  • Alice 用她的私钥加密这个哈希值,生成签名

  • 她将文件 + 签名 一起发给 Bob

Bob 的验证过程

  • Bob 对文件重新计算哈希 → 得到 A1B2C3...

  • Bob 用 Alice 的公钥解密签名 → 得到一个哈希值

  • 两个哈希值一致 → 签名合法 ✅


🔧 四、常见的数字签名算法

算法名称描述安全性
RSA经典的非对称加密算法,支持签名安全但密钥长
DSA数字签名标准,美国政府认证安全但签名速度慢
ECDSA椭圆曲线数字签名算法更快更短密钥,广泛使用
EdDSA新一代签名算法快速、安全、现代


📦 五、应用场景

  • ✅ 软件发布(验证软件未被篡改,如 .sig 文件)

  • ✅ HTTPS(SSL/TLS 证书背后就用了数字签名)

  • ✅ 区块链/比特币(每笔交易都需要签名)

  • ✅ 电子合同、电子发票(确保合同合法有效)

  • ✅ 邮件加密(如 OpenPGP、S/MIME)


📌 六、数字签名 vs 手写签名

项目手写签名数字签名
安全性易伪造基于数学难题,难伪造
可验证性需要人工判断自动验证、可追溯
抵赖性可否认不可否认
应用场景纸质文档电子文档/通信/金融
http://www.xdnf.cn/news/15993.html

相关文章:

  • JVM:工具
  • A316-HF-I2S-V1:USB TO I2S HiFi音频转换器评估板技术解析
  • C语言---VSCODE的C语言环境搭建
  • VR技术在元宇宙游戏中的作用及发展前景深度分析
  • 基于mysql云数据库创建和美化表格,对比分析Power BI和Quick BI的功能优劣
  • 《C++初阶之STL》【string类:详解 + 实现】
  • “我在京东外卖上的120天”
  • 记一次flink资源使用优化
  • 操作系统 —— A / 概述
  • 探索飞算JavaAI:AI赋能Java开发的新范式
  • 内网穿透利器:基于HTTPHTTPS隧道的代理工具深度解析
  • Vue3中watch和watchEffect区别和用法
  • 电商项目_秒杀_架构及核心
  • 借助AI学习开源代码git0.7之七commit-tree
  • OpenCV基本的图像处理
  • 风险识别清单:构建动态化的风险管理体系
  • 网络安全第三次作业
  • 决策树学习笔记
  • K 近邻算法(K-Nearest Neighbors, KNN)详解及案例
  • React 英语单词补全游戏——一个寓教于乐的英语单词记忆游戏
  • 什么是AI思维:它是智能优先与世界模型重构商业逻辑
  • 【黑马SpringCloud微服务开发与实战】(四)微服务02
  • cuda编程笔记(9)--使用 Shared Memory 实现 tiled GEMM
  • 【操作篇】群晖NAS用root权限直接访问系统分区文件
  • 【openbmc6】entity-manager
  • 网络数据分层封装与解封过程的详细说明
  • 安装pytorch(cpu版)
  • 《C++》范围 for 循环,空指针nullptr
  • RSTP协议
  • HOT100——图篇Leetcode207. 课程表