常用的加密算法

AES

高级加密标准(AES, Advanced Encryption Standard)是当今世界范围内应用最广泛的对称加密算法之一。在微信小程序加密传输等场景中,AES算法发挥着至关重要的作用。对称加密算法的特点在于加密和解密过程使用相同的密钥。具体来说,AES加密流程如下:

  1. 密钥选择:AES支持三种不同的密钥长度,分别是128位、192位和256位。密钥的长度决定了加密的强度和安全性。

  2. 初始向量(IV):除了密钥外,AES加密还需要一个初始向量(IV),用于确保即使使用相同的密钥加密相同的明文,输出的密文也会不同。

  3. 数据填充:由于AES算法是分组加密算法,它要求输入的数据长度必须是分组大小的整数倍。因此,如果输入数据长度不是分组大小的整数倍,就需要对数据进行填充,以满足算法的要求。

  4. 加密过程:使用选定的密钥和初始向量,通过一系列复杂的数学运算(如替代-置换网络),将明文数据转换为密文。

  5. 解密过程:解密时,使用相同的密钥和初始向量,通过相同的数学运算,将密文还原为明文。

对称加密算法也就是加密和解密用相同的密钥,具体的加密流程如下图:

RSA

RSA加密算法是一种基于大数因式分解问题的非对称加密算法。它的安全性建立在数学难题之上,使得在没有私钥的情况下,几乎无法从公钥和密文中恢复出明文。RSA算法广泛应用于数字签名、公钥加密和密钥交换等领域。

非对称加密的特点在于使用一对密钥(公钥和私钥)进行加密和解密操作。公钥用于加密数据,而私钥用于解密数据。这种机制保证了只有持有私钥的人才能解密用公钥加密的数据,从而实现了数据的安全传输。

例如,在Alice向Bob发送加密消息的场景中,Alice会使用Bob的公钥对消息进行加密,然后将密文发送给Bob。Bob收到密文后,使用自己的私钥进行解密,从而得到原始的明文消息。

RSA 加密算法是一种典型的非对称加密算法,它基于大数的因式分解数学难题,它也是应用最广

泛的非对称加密算法。

非对称加密是通过两个密钥(公钥-私钥)来实现对数据的加密和解密的。公钥用于加密,私钥用

于解密。Alice --》Bob

CRC

循环冗余校验(Cyclic Redundancy Check, CRC)是一种用于检测数据传输或保存过程中可能出现的错误的散列函数。它通过对数据块进行特定的数学运算,生成一个固定长度的校验码,并附加在数据块的末尾。接收方在收到数据后,会重新计算校验码并与发送方附加的校验码进行比对,以检测数据在传输过程中是否发生错误。

CRC算法的核心思想是利用除法及余数的原理来进行错误检测。发送方和接收方都使用相同的生成多项式进行运算,以确保计算结果的一致性。如果接收方计算出的校验码与发送方附加的校验码不匹配,则说明数据在传输过程中发生了错误。

MD5

MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它可以将任意长度的数据映射为一个固定长度(通常为128位)的哈希值。这个哈希值通常被用作数据的“指纹”,用于验证数据的完整性和真实性。

在文件传输和存储场景中,MD5常被用来检查文件的完整性。下载文件时,通常会附带一个以.MD5为扩展名的文本文件或一行字符,这就是文件的MD5哈希值。下载完成后,用户可以使用MD5检查工具对下载的文件进行哈希计算,并将结果与提供的MD5值进行比对。如果两者一致,则说明文件在传输过程中没有发生错误或被篡改。

此外,MD5还常用于敏感信息的加密保护。例如,在网站中存储用户密码时,通常不会直接存储明文密码,而是存储密码的MD5哈希值。这样即使数据库被泄露,攻击者也无法直接获取用户的明文密码。当然,由于MD5算法存在一些已知的碰撞问题,现代系统通常会采用更安全的哈希算法(如SHA-256)或结合其他安全措施来提高安全性。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

音视频按照时长分类小工具

应某用户的需求,编写了这款根据音视频时长分类小工具。 实际效果如下: 显示的是时分秒: 核心代码: MediaInfo MI; if (MI.Open(strPathInput.c_str()) 0){return -1;}_tstring stDuration MI.Get(stream_t::Stream_Audio,0,_T…

重建大师出现引擎在正常跑任务,但工程界面却看不到内容的情况,该怎么解决(如下图)?

这个是工程production信息损坏了,数据还在正常跑,不影响最终成果,也可以新建一个procution跑剩下瓦块。 若上步操作完成后,出现任务无法取消的情况,可以尝试停下所有引擎,然后切换一个路径,不用…

visualization_msgs::Marker 的pose设置,map坐标系的3d box显示问题

3D框显示 3D框显示可以使用visualization_msgs::Marker::LINE_LIST或者LINE_STRIP,前者使用方法需要指明线的两个端点,后者自动连接相邻两个点。 姿态问题 网上看了一些,没有涉及到朝向设置,Pose.orientation默认构造为4个0 至…

深度学习图像算法工程师--面试准备(2)

深度学习面试准备 深度学习图像算法工程师–面试准备(1) 深度学习图像算法工程师–面试准备(2) 文章目录 深度学习面试准备前言一、Batch Normalization(批归一化)1.1 具体步骤1.2 BN一般用在网络的哪个部分 二、Layer Normaliza…

docker 子网

当需要给容器分配指定 ip ,为避免ip 冲突,指定容器子网处理 创建 subnet 子网 docker network create --subnet 10.0.0.0/24 --gateway 10.0.0.1 subnet-testdocker network ls NETWORK ID NAME DRIVER SCOPE ... f582ecf297bc sub…

Windows+conda+TensorRT

WindowsAnaconda配置TensorRT的教程,通过此教程配置完TensorRT后,可以在Anaconda的虚拟环境内使用TensorRT 本文环境为win10 condacuda11.2 利用conda 创建一个虚拟环境yolov8, conda create -n yolov8 python3.9安装CudaToolKit、安装CUD…

Redis精讲

redis持久化 RDB方式 Redis Database Backup file (redis数据备份文件), 也被叫做redis数据快照. 简单来说就是把内存中的所有数据记录到磁盘中. 快照文件称为RDB文件, 默认是保存在当前运行目录. [rootcentos-zyw ~]# docker exec -it redis redis-cli 127.0.0.1:6379> sav…

Normalizer(归一化)和MinMaxScaler(最小-最大标准化)的区别详解

1.Normalizer(归一化)(更加推荐使用) 优点:将每个样本向量的欧几里德长度缩放为1,适用于计算样本之间的相似性。 缺点:只对每个样本的特征进行缩放,不保留原始数据的分布形状。 公式…

提升工作效率,告别Excel,尝试Zoho CRM客户管理!

曾经有客户咨询我们:“EXCEL管理客户功能不够用,但是又觉得CRM管理系统太麻烦,应该如何选择?”这篇文章就告诉您:EXCEL在客户管理方面都有哪些局限性?CRM管理系统都有哪些优势?初创企业应该怎样选择适合的C…

Shell常用脚本:文件或目录一键同步到多台服务器

注意: 将本地文件,同步到【/opt/module/script/xsyncByFileIp.txt】里面的目标机器 xsyncByFile.sh #!/bin/bash# 入参参数个数 argsCount$#if(($argsCount0)); thenecho "同步失败:请输入待同步的文件或者目录" exit; fiecho &q…

二分与前缀和

789. 数的范围 - AcWing题库 import java.util.*;public class Main{static int N 100010;static int[] a new int[N];public static void main(String[] args){Scanner sc new Scanner(System.in);int n sc.nextInt();int m sc.nextInt();for(int i 0; i < n; i ){…

7-16 计算符号函数的值

对于任一整数n&#xff0c;符号函数sign(n)的定义如下&#xff1a; 请编写程序计算该函数对任一输入整数的值。 输入格式: 输入在一行中给出整数n。 输出格式: 在一行中按照格式“sign(n) 函数值”输出该整数n对应的函数值。 输入样例1: 10输出样例1: sign(10) 1输入样…