常用的加密算法

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)或结合其他安全措施来提高安全性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码匠心印记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值