一、加密算法基础知识
1、简介
加密算法和协议是信息安全领域的重要组成部分,它们共同确保数据在传输和存储过程中的机密性、完整性和身份验证。
加密算法是用于将明文(原始数据)转换为密文(加密后的数据)的数学函数或程序。加密过程涉及使用密钥(一个秘密值)对明文进行加密,以生成密文。解密是加密的逆过程,它使用相同的密钥或另一个相关的密钥将密文还原为明文。
2、分类
加密算法主要分为三大类:对称加密算法、非对称加密算法和单向加密(也称为不可逆加密算法)。
-
对称加密算法:加密和解密使用相同的密钥。常见的对称加密算法包括DES(数据加密标准)、3DES(三重DES)、AES(高级加密标准)等。这些算法通常用于加密大量数据,因为它们速度快且易于实现。
-
非对称加密算法:加密和解密使用不同的密钥,即公钥和私钥。公钥可以公开,而私钥必须保密。常见的非对称加密算法包括RSA(Rivest-Shamir-Adleman算法)、DSA(Digital Signature Algorithm)数字签名算法、ECC(椭圆曲线密码学)等。这些算法通常用于数字签名和密钥交换,因为它们提供了更高的安全性。注意:DSA 只是一种算法,和 RSA 不同点是它不能用作加密和解密及密钥交换,只用于签名,它比 RSA 要快很多。
-
单向加密:单向加密是一种不可逆的加密算法,它只能将明文加密成密文,而无法通过密文还原为明文。通常用于数据完整性验证和密码存储等场景。常见的单向加密算法包括:SHA(安全散列算法)、SHA-1、SHA-256 和 SHA-3、MD5(Message-Digest Algorithm 5)。
二、对称加密算法
1、基本原理
发送方将原始数据通过对称密钥加密后传输给接收方;
接收方收到密文后,使用同一个对称密钥解密,还原数据。

2、特点
-
加密、解密使用同一个密钥,效率高;
-
将原始数据分割成-固定大小的块-,逐个进行加密
-
加密解密双方需要协商使用哪一种秘钥信息
3、缺点
-
密钥过多
-
密钥分发,无法保证获得秘钥的人都是好人。
-
数据来源无法确认
4、常见实例及典型应用场景
算法实例 | 典型应用场景 |
---|---|
AES(高级加密标准) | 目前最主流的对称加密算法,安全性极高(密钥长度支持 128/192/256 位),用于: - 文件加密(如压缩包加密、本地文档加密); - HTTPS 通信(握手后用 AES 传输实际数据,因非对称加密速度慢,仅用于密钥交换); - 移动设备存储(如手机锁屏密码的底层加密、U 盘加密)。 |
DES(数据加密标准) | 早期经典算法(密钥长度 56 位,安全性较低,已逐渐被淘汰),曾用于: - 早期银行系统的磁条卡加密; - 简单数据加密场景(如低端设备的配置文件加密),目前多被 3DES(DES 的改进版,三次加密)替代。 |
三、非对称加密算法
1、基本原理
接收方通过算法生成一对密钥:公钥(Public Key) 和私钥(Private Key),公钥可公开(如发布到网站、发送给通信方),私钥绝对保密;
发送方使用接收方的公钥来加密原始数据,将加密后的密文发送给接收方;
接收方使用自己的私钥来解密。

2、特点
-
用公钥加密数据,只能使用与之配对的私钥解密
-
用私钥加密数据,只能使用与之配对的公钥解密
-
公钥和私钥是配对使用
3、缺点
-
密钥长,算法复杂
-
加密解密效率低下
-
因为公钥公开,所以接收方无法保证数据的来源是安全的
4、实现数字签名
发送方通过算法生成一对密钥:公钥(Public Key) 和私钥(Private Key),公钥可公开(如发布到网站、发送给通信方),私钥绝对保密;
发送方使用自己的私钥来加密原始数据,将加密后的密文发送给接收方;
接收方使用发送方的公钥来解密。
因为由发送方私钥加密的数据,只能通过该发送方的公钥解密,所以可以保证数据的来源就是该发送方。
因为发送方公钥公开的原因,发送数据的一方,加密数据在互联网上几乎是裸奔,任何人拿到加密数据都可以解密。

5、常见实例及典型应用场景
算法实例 | 典型应用场景 |
---|---|
RSA | 最经典的非对称加密算法(基于大质数分解难题),应用广泛: - HTTPS/SSL 握手(服务器用私钥签名,客户端用公钥验证;客户端用公钥加密对称密钥,服务器用私钥解密); - 数字签名(如软件安装包签名、电子合同签名,防止伪造); - SSH 远程登录(密钥认证模式,客户端用私钥签名,服务器用公钥验证)。 |
ECC(椭圆曲线加密) | 比 RSA 更高效的非对称算法(相同安全性下,ECC 密钥长度仅为 RSA 的 1/4,速度更快): - 移动支付(如支付宝、微信支付的身份验证,适配手机等资源受限设备); - 区块链(如比特币、以太坊的地址生成和交易签名,减少数据存储和传输成本); - 物联网设备(如智能传感器的身份认证,低功耗场景适配)。 |
四、单向加密算法
1、基本原理
单向加密算法即哈希算法,任意长度的输入转换为固定长度的输出(哈希值 / 摘要),不可逆,无法从哈希值反推原文,并非传统意义上的 "加密"(无解密过程)。
2、特点
-
任意长度输入,固定长度输出
-
雪崩效应:输入微小变化(如改一个字符),哈希值会完全不同
-
无法从指纹中重新生成数据,即不可逆,具有单向性。
3、缺点
-
不可逆,无法解密
-
存在"哈希碰撞",即不同输入生成相同哈希值
4、常见实例及典型应用场景
算法实例 | 典型应用场景 |
---|---|
SHA-256(安全哈希算法 256 位) | 目前最安全的哈希算法之一(属于 SHA-2 家族,哈希值 256 位,碰撞概率极低),用于: - 密码存储(服务器不存明文密码,仅存密码的 SHA-256 值,登录时比对哈希值); - 文件校验(如下载软件时,官网提供安装包的 SHA-256 值,用户下载后计算哈希值,确认是否被篡改); - 区块链(比特币、以太坊的区块哈希,确保区块数据不可篡改,一旦修改区块内容,哈希值会完全变化)。 |
MD5(消息摘要算法 5) | 早期常用哈希算法(哈希值 32 位),因碰撞风险高(2004 年被证明可人为构造碰撞),目前仅用于非安全场景: - 文件完整性校验(如普通文件传输后的快速比对,不涉及敏感数据); - 数据库索引(对数据生成 MD5 值,加速查询); - 避免重复文件(如网盘判断重复文件,计算文件 MD5 值比对)。 |
五、对比总结
对比维度 | 对称加密 | 非对称加密 | 哈希算法 |
---|---|---|---|
密钥使用 | 单一对称密钥 | 公钥(公开)+ 私钥(保密) | 无密钥 |
核心功能 | 加密 / 解密数据 | 加密密钥 / 数字签名 | 生成摘要(验证完整性) |
可逆性 | 可逆(已知密钥可解密) | 可逆(公钥加密→私钥解密) | 不可逆(无法反推原文) |
速度 | 极快 | 极慢 | 快 |
典型组合场景 | 与非对称加密配合(如 HTTPS:非对称交换对称密钥,对称加密传输数据) | 与哈希算法配合(如数字签名:先对数据哈希,再用私钥签名哈希值) | 与非对称加密配合(如身份验证:哈希值 + 私钥签名,确保数据未篡改) |