当前位置: 首页 > 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 验签

http://www.lryc.cn/news/540810.html

相关文章:

  • Repeated Sequence
  • CT dicom 去除床板 去除床位,检查床去除
  • react 踩坑记 too many re-renders.
  • YOLOv8与BiFormer注意力机制的融合:提升多场景目标检测性能的研究
  • Ubuntu24.04LTS的下载安装超细图文教程(VMware虚拟机及正常安装)
  • c++贪心系列
  • 爬虫第七篇数据爬取及解析
  • LangChain 技术入门指南:探索语言模型的无限可能
  • 解锁D3.js与PlantUML的交互奥秘:探索知识图谱数据可视化新领域
  • OpenCV机器学习(8)随机森林(Random Forests)算法cv::ml::RTrees类
  • Java四大框架深度剖析:MyBatis、Spring、SpringMVC与SpringBoot
  • MySQL系列之身份鉴别(安全)
  • 纯手工搭建整套CI/CD流水线指南
  • 侯捷 C++ 课程学习笔记:C++ 基础与演化
  • LangChain:AI大模型开发与分布式系统设计
  • AI赋能编程:PyCharm与DeepSeek的智能开发革命
  • c++:stack与deque
  • Linux-C/C++《C++/1、C++基础》(C++语言特性、面向对象等)
  • 交易所开发:数字市场的核心动力
  • Spring Boot 应用(官网文档解读)
  • .Net面试宝典【刷题系列】
  • Unity游戏制作中的C#基础(3)加减乘除算术操作符,比较运算符,逻辑与,或运算符
  • 如何优化 Webpack 的构建速度?
  • win10把c盘docker虚拟硬盘映射迁移到别的磁盘
  • conda 配置源
  • 使用nvm管理node.js版本,方便vue2,vue3开发
  • Linux离线环境安装miniconda并导入依赖包
  • 【opencv】图像基本操作
  • 泛微OA编写后端Rest接口
  • AI助力下的PPT革命:DeepSeek 与Kimi的高效创作实践