当前位置: 首页 > 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;…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由&#xff1a;大部分的转换软件需要收费&#xff0c;要么功能不齐全&#xff0c;而开会员又用不了几次浪费钱&#xff0c;借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​&#xff1a;Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​&#xff1a; V8引擎优化&#xff08;for of替代forEach、Map/Set替代Object&#xff09;。默认使用更快的md4哈希算法。AST直接从Loa…...