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

安全加密算法

常用加密算法

对称加密

加密和解密用到的密钥是相同的,这种加密方式加密速度非常快,适合经常发送数据的场合。缺点是密钥的传输比较麻烦。常用对称加密算法如下:
DES:密钥长度8个字节,安全性不足,已被证明可以在短时间内破解。
3DES:3次DES加密,密钥长度增加到24字节,兼容DES加密,破解难度增大,性能慢。3DES为DES到AES的过渡算法。
AES:分组加密算法,比3DES安全性更高、性能更快。密钥长度可以为16字节(128位,AES-128)、24字节(192位,AES-192)、36字节(256位、AES-256)
SM1:国密加密,分组加密算法,性能与AES相当,密钥长度16字节。适用小数据量加密。
SM4:相比SM1,使用大数据量加密。


非对称加密

需要公钥和私钥两个密码进行加密解密,公钥加密的内容只能私钥解密,私钥加密的内容只有公钥可以解密,性能慢,主要用于数字证书和数字签名,常用非对称加密算法如下:
RSA:RSA算法的加密和解密速度较慢,尤其是对于较长的密钥长度。
SM2 :国密加密,性能和安全性都优于RSA。

散列算法

不可逆算法。常用算法有MD5、SM3。

参考文档:https://blog.csdn.net/tryheart/article/details/107181738

常用证书格式

PEM格式

PEM(Privacy-Enhanced Mail)是一种基于文本的文件格式,广泛用于存储和传输加密的私钥、公钥和证书。PEM格式的文件通常使用Base64编码,并包含"-----BEGIN..."和"-----END..."等标识来标识文件的内容类型。PEM格式通常扩展名包括.pem(常用于私钥和公钥)、.key(常用于私钥)、.csr(常用于请求证书)、.cer(常用于安全通信证书)、.crt(常用于安全通信证书)。证书文件具体类型需查看文件内容,示例如下:

私钥文件:(包含私钥和公钥信息)

-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAzTUFDfcDc6NulB9yRPl5w+PtQMsA/PgnWAOX5wcoH7X+UUZD
-----END RSA PRIVATE KEY-----

公钥文件:(包含公钥信息)

 -----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDPZfK4htROfeUPsaQeogEXRAGB
-----END PUBLIC KEY-----

请求证书文件:(包含公钥和私钥签名信息)

-----BEGIN CERTIFICATE REQUEST-----
MIIBjzCB+QIBADBQMQswCQYDVQQGEwJDTjELMAkGA1UECAwCWkoxCzAJBgNVBA
-----END CERTIFICATE REQUEST-----

通信证书文件:(包含公钥信息和签名私钥信息、CA中心私钥签名信息)

-----BEGIN CERTIFICATE-----
MIIDHDCCAgQCCQCpeNx2DrmHlzANBgkqhkiG9w0BAQsFADBQMQswCQYDVQQGEw
-----END CERTIFICATE-----

.pfx:.pfx格式是一种包含私钥和公钥的加密证书文件。它通常用于存储和传输证书及其私钥,可用于实现数字签名、数据加密等安全操作。

.der:通常用于存储证书、公钥和其他加密相关的数据。与.pem格式不同,.der文件不使用Base64编码,而是以二进制形式表示数据。它是一种紧凑且高效的编码方法,可确保数据在存储和传输过程中的完整性和安全性。

CA认证中心

以下为模拟CA认证中心生成私钥、根证书流程。

文件说明

private/rxca-key.pem:CA认证中心用于签发证书的私钥
private/rxca.csr:用于生成rxca.cer的请求证书文件(临时文件,包含名文公钥及签名信息)
certs/rxca.cer:CA认证中心根证书(公钥,与rxca-key.pem配对),用户信任CA根证书后,由CA中心签发的证书都会被认为是安全的。


#创建CA中心目录
mkdir ca
cd ca  #进入CA中心目录
mkdir private  #私钥目录
mkdir certs    #证书目录#生成私钥rxca-key.pem,需设置私钥密码,后续使用私钥时需输入密码,参数-aes256指定私钥加密的加密算法
#出参:private/rxca-key.pem(私钥)
openssl genrsa -aes256 -out private/rxca-key.pem 1024#生成请求证书文件rxca.csr(需要用到rxca-key.pem是因为要签名),后续用于生成CA根证书,需输入前面设置的私钥密码
#入参:private/rxca-key.pem(私钥,用于生成对应公钥)、"/C=CN/ST=ZJ/L=HZ/O=RX/OU=ZG/CN=RXCA"(证书主题,唯一标识,方便后续使用)
#出参:private/rxca.csr(请求证书文件)
openssl req -new -key private/rxca-key.pem -out private/rxca.csr -subj "/C=CN/ST=ZJ/L=HZ/O=RX/OU=ZG/CN=RXCA"mkdir certs
#根据请求证书文件rxca.cer生成CA中心根证书,需输入前面设置的私钥密码
#入参:private/rxca.csr(请求证书文件)、private/rxca-key.pem(私钥,用于数字签名)
#出参:certs/rxca.cer(根证书)
openssl x509 -req -days 3650 -sha1 -extensions v3_ca -signkey private/rxca-key.pem -in private/rxca.csr -out certs/rxca.cer


生成加密通信证书

以下为模拟需要加密通信的机构生成通信私钥、公钥并到CA认证中心认证生成通信证书的过程。

文件说明

private/client-key.pem:加密通信私钥,生成该证书需设置密码,后续使用需输入密码。
private/client.csr:请求证书,用于生成加密通信证书(临时文件)
certs/client.cer:加密通信证书,已被CA中心认证(公钥,与client-key.pem配对),CA中心认证过的证书会自动被认为是安全的。
certs/client.pfx:加密签名证书,已被CA中心认证(包含公钥、私钥,即可用于加密,也可用于签名)

#创建用户目录(与ca目录同级)
mkdir client
cd client #进入CA中心目录
mkdir private #私钥目录
mkdir certs   #证书目录#创建加密通信私钥,需设置私钥密码,后续使用私钥时需输入密码
#出参:private/client-key.pem(私钥)
openssl genrsa -aes256 -out private/client-key.pem 1024#生成证书请求文件private/client.csr,需输入前面设置的私钥密码
#入参:private/client-key.pem(私钥,用于生成公钥)、"/C=CN/ST=ZJ/L=HZ/O=RX/OU=ZG/CN=client"(主题,证书唯一标识)
#出参:private/client.csr(请求证书文件)
openssl req -new -key private/client-key.pem -out private/client.csr -subj "/C=CN/ST=ZJ/L=HZ/O=RX/OU=ZG/CN=client"#证书请求文件到CA中心认证生成证书 certs/client.cer,需输入CA中心私钥密码(该步骤由CA中心执行)
#入参:../ca/certs/rxca.cer(CA中心根证书)、../ca/private/rxca-key.pem(CA中心私钥)、private/client.csr(请求证书文件)
#出参:certs/client.cer(证书文件)
openssl x509 -req -days 365 -sha1 -extensions v3_req -CA ../ca/certs/rxca.cer -CAkey ../ca/private/rxca-key.pem -CAcreateserial -in private/client.csr -out certs/client.cer#生成加密签名证书certs/client.pfx,需输入前面设置的私钥密码,且需要指定后续使用该数字签名证书的密码
#入参:certs/client.cer(证书文件)、private/client-key.pem(私钥)
#出参:certs/client.pfx(加密签名证书文件)
openssl pkcs12 -export -in certs/client.cer -inkey private/client-key.pem -out certs/client.pfx

相关文章:

安全加密算法

常用加密算法 对称加密 加密和解密用到的密钥是相同的,这种加密方式加密速度非常快,适合经常发送数据的场合。缺点是密钥的传输比较麻烦。常用对称加密算法如下: DES:密钥长度8个字节,安全性不足,已被证明…...

软件测试|使用matplotlib绘制多种饼图

简介 Matplotlib是一个强大的数据可视化库,它允许我们创建各种类型的图表,包括饼图。饼图是一种用于显示数据分布的常见图表类型。在本文中,我们将介绍如何使用Matplotlib创建不同类型的饼图,并提供示例代码。 创建标准饼图 首…...

vue3-响应式基础之ref

声明响应式状态 ref() 在组合式 API 中,推荐使用 ref() 函数来声明响应式状态: ref() 接收参数,并将其包裹在一个带有 .value 属性的 ref 对象中返回: import { ref } from vue const count ref(0)console.log(count) // { va…...

华为网络设备 通过路由器子接口 Dot1q终结子接口实现跨VLAN通信

(二层交换机直接跳过三层交换价接入路由器时才使用该配置。推荐使用三层交换机建立VLANIF配置更简洁明了。如果VLAN较少可直接配置;路由器接口,一个物理接口一个VLAN) S1配置 vlan batch 2 to 3interface GigabitEthernet0/0/1port link-type trunkpor…...

代码随想录算法训练48 | 动态规划part09

今天就是打家劫舍的一天,这个系列不算难,大家可以一口气拿下。 198.打家劫舍 视频讲解:动态规划,偷不偷这个房间呢?| LeetCode:198.打家劫舍_哔哩哔哩_bilibili 代码随想录 213.打家劫舍II 视频讲解&am…...

2024最新适用于 Windows 、Mac 的最佳屏幕录制软件

屏幕录制软件可以帮助我们录制 PC 和MacBook的实时屏幕视频。如果您想为 优酷录制视频,或者您正在为您的公司制作基于视频的项目,并且需要捕获屏幕的实时视频录制,那么我们在此列出了 一 款适合您的 Windows 、Mac的 2024 年最佳屏幕录制软件…...

【Docker】概述与安装

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于Docker的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一. Docker的概述 1.Docker为什么出现 2…...

衡水学院新人真题百练2022(1-20)修订版

​ 1 重要的话说三遍 分数 5 作者 陈越 单位 浙江大学 这道超级简单的题目没有任何输入。 你只需要把这句很重要的话 —— “I’m gonna WIN!”——连续输出三遍就可以了。 注意每遍占一行&#xff0c;除了每行的回车不能有任何多余字符。 #include<stdio.h> int…...

远程调用(OpenFeign)

远程调用 何为远程调用?例如:单体服务时,A模块的功能涉及到引用B模块的功能,那我们需要在A模块中注入B模块的相关服务类并调用其方法;那么同样的逻辑在微服务体系下,就会变成了A服务的功能需要调用B服务的功能,这就形成了服务间调用,也称为远程调用。 目前来说,微服务…...

智能光栅光片显微成像技术的LabVIEW解决方案

智能光栅光片显微成像技术的LabVIEW解决方案 在生物医学研究中&#xff0c;高效的成像技术对于捕捉细胞内罕见和复杂事件至关重要。智能光栅光片显微技术&#xff08;smartLLSM&#xff09;的出现&#xff0c;代表了LabVIEW软件在高端成像领域的革命性应用&#xff0c;这项技术…...

手撕乘积(**Multiplication** **Product**): 穷举和图示(2) 点积的几何意义

手撕乘积(Multiplication & Product): 穷举和图示(2) 点积的几何意义 点乘 x 3 y 5 xNda np.arange(x) >>> array([0, 1, 2]) x2Nda xNda*21 >>> array([1, 3, 5]) yNda np.arange(1, y) >>> array([1, 2, 3, 4]) xyNda np.meshgrid(xN…...

postman环境变量全局变量设置

postman环境变量、全局变量设置 在公司中&#xff0c;一般会存在开发环境、测试环境、线上环境等&#xff0c;如果需要在不 同的环境下切换做接口测试&#xff0c;显然我们需要把所有接口的域名进行修改&#xff0c;如果接 口测试用例较多&#xff0c;那么修改会非常费力&…...

Linux 内核线程

文章目录 一、内核线程二、内核线程与普通进程的异同三、内核线程创建3.1 kernel_thread3.2 kthread_create 四、内核线程的退出四、示例代码参考资料 一、内核线程 内核线程就是内核的分身&#xff0c;一个分身可以处理一件特定事情。Linux内核使用内核线程来将内核分成几个功…...

Golang学习之路一七fmt的使用

Golang学习之路一七fmt的使用 格式化参数列表 格式含义%%一个%字面量%b一个二进制整数值(基数为 2)&#xff0c;或者是一个(高级的)用科学计数法表示的指数为 2 的浮点数%c字符型。可以把输入的数字按照 ASCII 码相应转换为对应的字符%d一个十进制数值(基数为 10)%e以科学记数…...

windows使用redis-安装和配置

windows使用redis 安装和配置 下载安装方式一-使用压缩包安装解压到指定的文件Redis安装为Windows服务安装成功 方式二-MSI安装包安装完成 Redis配置远程访问1.修改配置文件redis.windows.conf2.修改完redis配置文件&#xff0c;必须重启redis 下载 先下载Redis for windows 的…...

Kafka系列(一)

内容 该系列主要是复习期间&#xff0c;通过浏览资料记录的一些笔记和重点&#xff0c;用于日常学习和学习后的总结。 组件概念 broker 一个Kafka的集群通常由多个broker组成&#xff0c;这样才能实现负载均衡、以及容错 broker是无状态&#xff08;Sateless&#xff09;的…...

Kotlin中的委托

在Kotlin中&#xff0c;委托是一种强大的设计模式&#xff0c;它允许一个类将其一些职责委托给另一个类。这种机制通过关键字by来实现。委托有助于代码的重用&#xff0c;降低耦合性&#xff0c;并提供更清晰的类设计。在Kotlin中&#xff0c;有两种主要类型的委托&#xff1a;…...

VUE2/3:element ui table表格的显隐列(若依框架)

若依框架自带一个组件&#xff0c;封装了关于表格&#xff0c;展示和隐藏表格列的功能&#xff1b; 使用效果就是这样的&#xff0c;在表格上面&#xff0c;三个框&#xff0c;从左到右分别是隐藏上面搜索&#xff0c;刷新列表&#xff0c;和显隐列的功能&#xff1b; 一、下面…...

PTA-7-4 堆排序

代码如下: #include<iostream> using namespace std; void change(int arr[], int n, int i); int main() {int n,i,end,arr[1000];cin >> n;for (i 0; i < n; i){cin >> arr[i];}//进行一次排序,把最大值放到顶端for (i n/2-1; i > 0; i--){change…...

uniapp滑动页面切换和下拉刷新,触底加载更多(swiper + scroll-view)

因为官方文档乱七八糟的&#xff0c;所以自己来总结下 需求&#xff1a; 常见的上方tag标签切换&#xff0c;下方是页面&#xff0c;上面点击切换&#xff0c;下面页面也切换&#xff0c;下方列表有下拉刷新&#xff0c;触底加载更多 因为这两个组件都是固定高度的&#xff0c;…...

ChatGPT本地离线部署实战:从模型量化到服务化避坑指南

ChatGPT本地离线部署实战&#xff1a;从模型量化到服务化避坑指南 作为一名开发者&#xff0c;你是否也曾为调用云端大语言模型&#xff08;LLM&#xff09;而烦恼&#xff1f;高昂的API费用、不可预测的响应延迟&#xff0c;以及将敏感数据发送到第三方服务器的隐私顾虑&…...

FastLED NeoMatrix:嵌入式LED矩阵的GFX抽象与硬件加速融合框架

1. FastLED NeoMatrix&#xff1a;面向嵌入式显示系统的高性能LED矩阵驱动框架FastLED NeoMatrix 是一个专为嵌入式平台设计的、与 Adafruit_GFX 兼容且深度适配 FastLED 生态的 LED 矩阵显示库。它并非简单复刻&#xff0c;而是对原有 Adafruit_NeoMatrix 库的一次底层重构与性…...

少量样本下具身智能的新环境快速适应路径

具身智能以“感知-决策-执行”的闭环能力&#xff0c;打破了传统智能“脱离物理世界”的局限&#xff0c;但其在真实场景中的应用常面临样本稀缺的困境——工业生产线的新品切换、家庭环境的物品摆放变化、灾害现场的未知障碍&#xff0c;都无法提供海量标注样本用于模型训练。…...

Klipper固件故障诊断全景指南:从现象到本质的系统化解决方案

Klipper固件故障诊断全景指南&#xff1a;从现象到本质的系统化解决方案 【免费下载链接】klipper Klipper is a 3d-printer firmware 项目地址: https://gitcode.com/GitHub_Trending/kl/klipper 引言&#xff1a;构建3D打印故障诊断思维 在3D打印领域&#xff0c;固件…...

嵌入式Linux无线AP模式实现与配置详解

1. 嵌入式Linux设备无线AP模式实现方案1.1 系统概述本方案实现了一种基于嵌入式Linux系统的无线接入点(AP)配置方法&#xff0c;可将废旧开发板改造为无线调试终端。该系统主要解决以下两个工程需求&#xff1a;AP配网功能&#xff1a;实现智能硬件设备的热点配网模式&#xff…...

CompactGUI社区数据库:游戏压缩效果的终极共享指南

CompactGUI社区数据库&#xff1a;游戏压缩效果的终极共享指南 【免费下载链接】CompactGUI Transparently compress active games and programs using Windows 10/11 APIs 项目地址: https://gitcode.com/gh_mirrors/co/CompactGUI 你是否曾为电脑存储空间不足而烦恼&a…...

新概念英语第一册083_Going on holiday

Lesson 83: Going on holiday Watch the story and answer the question Where did Sam go for his holiday this year? He stayed at home.Key words and expressions mess n. 杂乱&#xff0c;pack v. 包装&#xff0c;打包&#xff0c;装箱suitcase …...

为什么AI时代需要Lightpanda这样的无头浏览器?揭秘9倍内存效率背后的技术革命

为什么AI时代需要Lightpanda这样的无头浏览器&#xff1f;揭秘9倍内存效率背后的技术革命 【免费下载链接】browser The open-source browser made for headless usage 项目地址: https://gitcode.com/GitHub_Trending/browser32/browser 在当今AI代理、自动化测试和大规…...

杰理之内置触摸拓扑结构【篇】

低功耗内置触摸检测模块&#xff0c;简称lp_ctmu模块&#xff0c;是利用检测人体分布电容对触摸按键电容的影响&#xff0c;通过检测该电容变化&#xff0c;达到按键识别的功能...

C转Udon汇编编译器:降低VRChat世界开发门槛,释放创意互动潜力

C#转Udon汇编编译器&#xff1a;降低VRChat世界开发门槛&#xff0c;释放创意互动潜力 【免费下载链接】UdonSharp A compiler for compiling C# to Udon assembly 项目地址: https://gitcode.com/gh_mirrors/udo/UdonSharp 核心价值&#xff1a;三大创新突破重构虚拟世…...