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

一文说清楚编码、摘要、加密、公钥、私钥、解密、签名、验签

编码

对信息进行编码,没有信息损失,任何人都能通过编码方式对信息进行解码。例如 ASCII 码,base64 编码。

例如下面是 ASCII 编码表:

ASCII 编码

摘要

对信息计算摘要值,有信息损失,例如 md5 摘要,sha1 摘要。

MD5 摘要

加密

对信息进行加密使其无法被监听者获知内容,没有信息损失。例如:AES、DES、RSA。

AES 加密

公钥

公钥就是两个数字,e(e = 65537,e > 1 且与 ø(n) 互质,ø(n) 为欧拉函数),n(n = p * q,p、q 为质数),用于验签或加密。一般不说用公钥解密,说用公钥验签。例如 RSA 公钥。

私钥

私钥就是两个数字,d(e 对于 ø(n) 的逆元,ø(n) 为欧拉函数)、n(n = p * q,p、q 为质数),用于签名或解密。一般不说用私钥加密,说用私钥签名

公钥与私钥的关系

在数学上没有区别,都是一对数字,取决于将哪一组数字公开。公钥加密的内容要使用私钥解密;私钥加密的内容要使用公钥解密。私钥要自己保护好,不得泄露;公钥可以公开在互联网上,任何人都可以用它来加密信息,当然加密内容只有私钥能够解出来。

RSA 加密

签名

计算信息的摘要值,用私钥对摘要值进行签名,生成一个签名值,签名算法有 RS256 等。

RSA + MD5 签名

验签

利用公钥对签名信息进行验证。拿到一段信息和它的签名值,需要先计算信息摘要值,用公钥解密签名值,和计算的信息摘要值进行比对。

RSA + MD5 验签

相关文章:

  • 具有整合各亚专科医学领域知识能力的AI智能体开发纲要(2025版)
  • docker基操
  • Unity游戏制作中的C#基础(4)数组声明和使用
  • Python 高级特性-迭代
  • 写大论文的word版本格式整理,实现自动生成目录、参考文献序号、公式序号、图表序号
  • Orange 单体架构 - 快速启动
  • VMware Workstation安装Windows10
  • Linux下基本指令(4)
  • android系统SystemServer进程启动流程分析
  • 002 SpringCloudAlibaba整合 - Feign远程调用、Loadbalancer负载均衡
  • 大数据学习之任务流调度系统Azkaban、Superset可视化系统
  • Cursor和Trae使用的感受
  • Spring 到 Spring Boot:配置文件管理的灵活封装与扩展
  • 爬虫第七篇数据爬取及解析
  • SpringBoot 配置文件
  • AGI觉醒假说的科学反驳:从数学根基到现实约束的深度解析
  • JavaScript变量的作用域介绍
  • 什么是矩阵账号?如何高效运营tiktok矩阵账号
  • 什么是超越编程(逾编程)(元编程?)
  • DuodooBMS源码解读之 odoo_phoenix_alarm模块
  • 上海徐汇 “家 + 书屋”,创新服务广大家庭
  • 玉林一河段出现十年最大洪水,一村民被冲走遇难
  • 十年牢狱倒计时,一名服刑人员的期待与惶恐
  • 国宝归来!子弹库帛书二、三卷抵达北京
  • 视频丨歼-10CE首次实战大放异彩
  • 大外交丨3天拿下数万亿美元投资,特朗普在中东做经济“加法”和政治“减法”