信息安全: 数字签名signature

认证的技术栈(持续更新中)

  1. 什么是 Token(令牌)?
  2. 数字签名signature
  3. jwt 的基本原理介绍
  4. 自定义一个jwt 工具类,并用接口测试
  5. Springboot + jwt 实现带权限的认证(不使用spring security

简介

数字签名是一种用于验证数字信息(如文件、消息、交易等)真实性、完整性和发送者身份的技术,本质上是传统手写签名在数字世界的安全替代方案。它通过密码学手段,确保信息在传输或存储过程中未被篡改,且能证明发送者的身份(防止抵赖),它的核心功能就两个字:认证( Authentication)。

核心作用

    1. 身份验证:证明信息确实来自声称的发送者(而非伪造);
    1. 完整性校验:确保信息在传输 / 存储过程中未被篡改(哪怕一个字符的改动都会被发现);
    1. 抗抵赖:发送者无法否认自己发送过该信息(因为签名与发送者的私钥绑定)。

技术原理(基于非对称加密)

数字签名依赖 “非对称加密”(公钥 - 私钥体系)和 “哈希函数” 实现,核心步骤如下:

  1. 生成消息摘要(哈希值):
    发送者先对原始信息(如一份合同)使用哈希函数(如 SHA-256)生成一个固定长度的 “消息摘要”(类似信息的 “数字指纹”)。
  • 特点:哈希值不可逆,且原始信息哪怕微小改动(如改一个字),哈希值会完全不同。
  1. 用私钥加密摘要,生成签名:
    发送者用自己的私钥(仅自己持有,绝对保密)对消息摘要进行加密,得到的加密结果就是 “数字签名”。
  2. 发送信息 + 签名:
    发送者将原始信息、数字签名一起发送给接收者。
  3. 接收者验证签名:
  • 接收者先用发送者的公钥(公开可查,用于解密对应私钥加密的内容)解密数字签名,得到原始消息摘要
  • 同时,接收者对收到的原始信息重新计算哈希值,得到新的消息摘要;
  • 对比两个摘要:若一致,说明信息未被篡改且确实来自该发送者;若不一致,则信息无效。

原理图:

在这里插入图片描述

应用场景

  • 电子合同 / 协议:确保签约方身份真实、内容未被篡改;
  • 软件发布:验证软件安装包是否被篡改(如官方软件的签名);
  • 在线交易 / 支付:确认交易指令的发送者身份,防止伪造;
  • 邮件 / 消息加密:证明发件人身份,防止邮件被篡改。
  • 身份认证: 如接口开发中的 认证。
    简言之,数字签名通过密码学技术,解决了数字世界中 “信息是谁发的”“信息有没有被改过” 这两个核心问题,是保障数字信息安全的基础技术之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值