非对称加解密和签名

非对称加解密特点

一对密钥,公钥和私钥。私钥自己持有,公钥公开给通信的对方。
如果公钥用作加密,那么私钥用作解密。
如果私钥用做加密,那么公钥用作解密。
如果数据量少可用非对称加密算法直接加密。
如果数据量大,则采用对称加密算法加密数据,非对称加密算法对 “对称加密算法使用的密钥” 进行加密

1、用作加密:A使用B的公钥对要传送的数据加密,B使用B的私钥解密。如果数据量少可用非对称加密算法直接加密。

可以这样实现:A传送数据给B时,A随机生成1个密钥(约定好的对称加密算法的密钥),使用约定好的对称加密算法和这个密钥对数据进行加密,然后使用B的公钥对secretKey进行加密,将加密后的数据连同加密后的secretKey发送给B,B使用自己的私钥对加密后的密钥进行解密。再利用解密出来的密钥对密文数据进行解密。
如下所图示:
在这里插入图片描述

2、用作签名:A使用A的私钥对要签名的数据加密,B使用A的公钥对数据进行解密。

可以这样实现:A对要传送的内容进行哈希计算如MD5,SHA256等。然后对哈希值进行签名,将签名值和要传送给的内容传送给B,B用A的公钥对签名值进行解密,再将传送过来的内容进行同样算法的哈希计算,得到一个哈希值,将此哈希值与解密出的哈希值进行对比,如果一样说明传送内容未被篡改。
如下所图示:

在这里插入图片描述

3、带签名加密:如果数据量大,则采用对称加密算法加密数据,非对称加密算法对 “对称加密算法使用的密钥” 进行加密

A生成一个密钥secretKey用作对数据进行对称加密,用secretKey对数据进行加密。然后使用A的私钥对密文数据进行哈希计算,得到一个签名值,再使用B的公钥将密钥secretKey进行加密。将要传送的密文,加密后的签名值,加密后的密钥,一并发给B。B使用A的公钥对签名值进行解密,得到解密后的签名值,再使用与A相同的哈希算法对接收到的密文进行哈希计算,将得到的哈希值与解密后的签名值比较,如果相同则说明传送的密文内容未被篡改,使用B的私钥对加密的secretKey进行解密,再使用解密后的密钥对密文数据进行解密。
如下所图示:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/799340.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【双色转模拟调光磁吸灯应用方案】调光线性度好 调光频率1K以上都兼容 LED护眼教室黑板灯降压恒流驱动IC芯片FP7195

文章目录 前言 一、行业要求和痛点 1、设计空间小,双路调光调色不容易排布 2、磁场对调光的影响 二、FP7195如何解决这些要求和痛点 1、FP7195实际应用双色温调光电路框架 2、FP7195的转模拟调光技术 总结 前言 磁吸灯作为一种时尚、实用的家居装饰灯具,…

javaweb学习

javaweb就是实现浏览器和服务器之间的交互 1、服务器配置 Run->Edit Configurations,点击右上角的号,选择Tomcat Server的local: 选择server下的Configure...,在弹出的界面里点击有上角的号,选择自己解压的合适的t…

220V降压5ⅤIC-AH8652

220V降压至5V的IC - AH8652 在电子设计中,电压转换是一个常见的需求,尤其是在需要将高电压转换为低电压以供电给微电子设备时。AH8652是一款专为降压转换设计的集成电路,它能够将220V的交流输入电压转换为稳定的5V直流输出,非常适…

java基础之变量,类型的转换,跟着哔站尚硅谷自学笔记。

变量 变量的介绍以及使用 1.变量的数据类型:基本数据类型:4类8种整数:byte short int long 浮点数:float double字符型:char布尔型:boolean引用数据类型:类 数组 接口 枚举 注解2.概述&#xf…

gptpdf:使用大模型(如 GPT-4o)将 PDF 解析为 markdown。

今天给大家分享一个开源的项目, 使用视觉大语言模型(如 GPT-4o)将 PDF 解析为 markdown。 方法非常简单(只有293行代码),但几乎可以完美地解析排版、数学公式、表格、图片、图表等。 使用 GeneralAgent lib 与 OpenAI API 交互。…

C++笔试强训4

文章目录 一、选择题1-5题6-10题 二、编程题题目一题目二 一、选择题 1-5题 %o就是输出八进制的无符号数,0123,,以0开头,本来就是八进制,所以输出为123,123是十进制,转化为八进制就是173. 故选…

双向带头循环链表

一、概念 何为双向:此链表每一个节点的指针域由两部分组成,一个指针指向下一个节点,另一个指针指向上一个节点,并且两头的节点也是如此,头节点的下一个节点是尾节点,尾节点的上一个节点是头节点&#xff1b…

C++ — 引用浅谈

引言 在C的语法规则中,定义了一种新的方法,叫做引用。在学习的初期,引用的作用很类似于指针(但需要注意引用不等于指针),引⽤不是新定义⼀个变量,⽽是给已存在变量取了⼀个别名。 在上边…

Cesium--获取当前相机中心与地面的射线焦点

本文记录获取当前相机中心与地面的射线焦点的方法,可用于视角缩放过程中,控制视角自动平滑切换到二维等场景: 方法一定是视角中心能与地面有交集,如果对着地平线或对着天空肯定是没效果的。直接放代码: //调整相机到正…

链接追踪系列-04.linux服务器docker安装elk

[rootVM-24-17-centos ~]# cat /proc/sys/vm/max_map_count 65530 [rootVM-24-17-centos ~]# sysctl -w vm.max_map_count262144 vm.max_map_count 262144 #先创建出相应目录:/opt/dockerV/es/…docker run -e ES_JAVA_OPTS"-Xms512m -Xmx512m" -d -p 92…

单目3D和bev综述

文章目录 SOTA2D 检测单目3d检测3d bev cam范式1 Transformer attention is all you need 20172 ViT vision transformer ICLR 2021google3 swin transformer 2021 ICCV bestpaper MS4 DETR 2020 decoder set match4 Deformabel DETR (deformabel convolution&#…

c++包管理器

conan conan search,查看网络库 conan profile detect,生成缓存信息conan new cmake_exe/cmake_lib,创建cmakelists.txtconan install .,执行Conanfile.txt中的配置,生成相关的bat文件 项目中配置Conanfile.txt(或者…

k8s核心操作_存储抽象_K8S中的持久卷与持久卷申请_PV/PVC理解与搭建_解决联动删除动态存储管理---分布式云原生部署架构搭建029

我们之前使用nfs搭建了一个存储系统,并且使用nfs的自动同步,让,不同节点上部署的应用,都可以,访问到自己的配置文件,并且 当pod宕机,在其他机器上启动,也可以访问到配置文件,但是这里依然有问题. 1.首先对于nfs上的文件夹,现在是我们自己创建的,有很多程序会自动创建很多文件夹…

知识图谱与LLMs:实时图分析(通过其关系的上下文理解数据点)

大型语言模型 (LLM) 极大地改变了普通人获取数据的方式。不到一年前,访问公司数据需要具备技术技能,包括熟练掌握各种仪表板工具,甚至深入研究数据库查询语言的复杂性。然而,随着 ChatGPT 等 LLM 的兴起,随着所谓的检索…

贪心算法案例

1.买卖股票的最佳时机 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔…

贝塞尔曲线基础

贝塞尔曲线于1962年由法国工程师皮埃尔贝塞尔(Pierre Bzier)所广泛发表,他运用贝塞尔曲线来为汽车的主体进行设计。贝塞尔曲线最初由Paul de Casteljau于1959年运用de Casteljau演算法开发,以稳定数值的方法求出贝兹曲线。 贝塞尔…

基于ARM Cortex-M3单片机研发的国产指纹芯片 - P1032BF1

智能指纹锁的核心部件:主板、离合器、指纹采集器、密码技术、微处理器(CPU)、智能应急钥匙。作为指纹锁来说,重要的应该是指纹芯片。指纹锁是通过电子部件及机械部件的精密组合而生产出的安全产品。指纹锁的本质无非是安全、便捷、…

配置Redis时yml的格式导致报错

报错如下 java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:98) at org.springframework.test.context.su…

C++面试问题

C基础 什么是野指针? 指向未分配或已释放内存的指针。比如未初始化、delete后未指向空、保存了局部变量的地址 怎么解决野指针问题? 使用智能指针释放后置空指针初始化避免返回局部变量的地址 C空类会创造那些函数? 默认构造析构函数拷…

【Linux】重定向,dup2

2.重定向 2.1.输出重定向 1.输入重定项。 我们之前学习过的输出重定向就是,将我们本应该输出到显示器上的数据重定向输出到另一个文件中。那他的原理是什么了? 例如: 如果我们想让本应该输出到“显示器文件”的数据输出到log.txt文件当中&…