🔑 RC4加密
流密码 · 对称加密 · 纯JS实现
流密码 · 对称加密 · 纯JS实现
RC4(Rivest Cipher 4)是由Ron Rivest于1987年设计的流密码算法,通过伪随机密钥流与明文异或实现加密。曾是SSL/TLS和WEP的标准加密算法,因其简单高效而广泛应用。
RC4现在被认为不安全,存在多种已知攻击(如密钥偏差攻击),已于2015年被IETF正式禁止用于TLS。WEP的破解也利用了RC4的弱点。本工具主要用于学习和兼容旧系统。
RC4是异或加密:密文=明文⊕密钥流,解密时明文=密文⊕密钥流。两次异或密钥流恢复原始数据,因此加密和解密是同一个操作。
RC4(Rivest Cipher 4)由 Ron Rivest 于1987年设计,是一种流密码。它由两个阶段组成:
RC4曾是应用最广泛的流密码,但已发现多个严重安全漏洞,现已被禁止用于新系统:
RC4在互联网加密协议中曾扮演重要角色:
| 对比维度 | RC4 | AES |
|---|---|---|
| 类型 | 流密码(Stream Cipher) | 分组密码(Block Cipher) |
| 设计年份 | 1987年 | 1998年(Rijndael胜出) |
| 密钥长度 | 40-2048位(通常128位) | 128/192/256位 |
| 分组/状态大小 | 256字节状态表 | 128位分组 |
| 速度 | 极快(纯字节运算) | 快(硬件加速AES-NI) |
| 安全性 | 已破解,不安全 | 安全(量子计算除外) |
| 当前状态 | 被禁止用于TLS | TLS 1.3的核心算法 |
| 硬件支持 | 无 | 现代CPU均有AES-NI指令集 |
| 适用场景 | 仅学习、兼容旧系统 | 全部现代加密场景 |
| 年份 | 事件 | 影响 |
|---|---|---|
| 1987年 | Ron Rivest 设计 RC4,作为RSA公司的商业机密 | 最初保密但通过逆向工程泄露,被称为"ARC4" |
| 2001年 | Fluhrer-Mantin-Shamir 发现密钥调度弱点 | 直接导致 WEP 被破解 |
| 2001年 | WEP 协议被证明可实际攻击 | WiFi 安全遭受重大打击,推动 WPA 诞生 |
| 2011年 | BEAST 攻击发现 TLS CBC 漏洞 | RC4 被误推为替代方案,使用率飙升 |
| 2013年 | AlFardan 等发现 RC4 在 TLS 中的统计偏差 | 推翻 RC4 安全性假设 |
| 2015年2月 | IETF RFC 7465 禁止 TLS 中使用 RC4 | RC4 正式从 Web 安全中退役 |
| 2015年3月 | RC4-NOMORE 攻击发表,可实际恢复 Cookie | RC4 被彻底证实不安全 |
| 特性 | 流密码 | 分组密码 |
|---|---|---|
| 工作方式 | 逐字节/逐比特处理 | 按固定大小的分组处理(如128位) |
| 加密单元 | 1 bit 或 1 byte | 128 bit(AES)或 64 bit(DES) |
| 典型算法 | RC4, ChaCha20, Salsa20 | AES, DES, 3DES, SM4 |
| 速度 | 通常更快(无填充) | 可通过硬件加速弥补(AES-NI) |
| 填充 | 不需要 | 需要(如CBC模式) |
| 错误传播 | 无(每个字节独立) | 有(CBC模式中一个错误影响两个分组) |
| 典型应用 | 实时流媒体、无线通信 | 文件加密、数据库加密、TLS 1.3 |
1. 输入文本。
2. 输入密钥(任意长度)。
3. 点击"加密/解密"(同一操作)。
4. 结果以Hex格式输出。