RC4 解密(旧版)

用十六进制原始密钥或兼容 OpenSSL 的口令(Salted__ 格式)解密 RC4(ARC4)密文。支持 Base64 或 Hex 输入、文本或 Hex 输出,全部在本地完成。

RC4 已被攻破:密钥流存在统计偏差,TLS 已禁止使用(RFC 7465)。仅用于旧数据,切勿用于新的加密。

输出为 Base64 编码的 OpenSSL “Salted__” 格式:8 字节随机盐后接密文。密钥和 IV 由口令和盐派生,因此同一段文本每次加密结果都不同。等效命令:

与 OpenSSL 一样,口令会被派生为 128 位 RC4 密钥。CryptoJS.RC4 使用口令时派生的是 256 位密钥,因此其输出无法在这里解密。

openssl enc -rc4 -d -md md5 -a -A -provider legacy -provider default -k '…'

完全在浏览器中运行,您的数据不会被上传。

什么是 RC4 解密?

解密用 RC4 流密码加密的数据,可以是配合十六进制密钥的原始密文,也可以是配合口令的 OpenSSL Salted__ Base64 格式。由于 RC4 是对称的,解密就是重新生成相同的密钥流并再次异或。

如何使用 RC4 解密

  1. 选择加密时使用的密钥来源,并输入口令或十六进制密钥。
  2. 粘贴 Base64 或 Hex 格式的密文。
  3. 点击解密并查看明文(二进制数据请切换为 Hex 输出)。

示例

输入
U2FsdGVkX18CT09IGrybf6B10S7HfLfYRy4mwTI= (passphrase "secret")
输出
Hello, World!

由 openssl enc -rc4 -md md5 -a -k secret 生成。

何时使用 RC4 解密

用于读取遗留的 RC4 数据或检查测试向量。密钥错误时只会悄悄得到随机字节,因此请确认结果是否合理。

RC4 解密 的工作原理

密钥(原始密钥,或像 OpenSSL 那样由口令和盐通过 EVP_BytesToKey MD5 / PBKDF2-SHA256 派生出的 16 字节)用于初始化 RC4 状态,生成的密钥流再与密文异或。RC4 没有填充,因此无法直接发现密钥错误;工具会报告不是有效 UTF-8 的输出,并允许你以十六进制查看。

常见用例

  • 解密使用 ARC4 的遗留软件中的值
  • 检查 RFC 6229 密钥流测试向量
  • 读取由 openssl enc -rc4 生成的数据
  • 讲解流密码的异或特性

安全提示

RC4 已被攻破:其密钥流存在强烈的统计偏差,RFC 7465 禁止在 TLS 中使用它。它不提供完整性保护。请仅用于遗留数据。

常见问题

为什么输出不是可读文本?

要么密钥错误(RC4 无法分辨),要么明文是二进制数据。把输出编码切换为 Hex 即可查看字节。

RC4 解密与加密不同吗?

不同之处只在于界面:它们是同一种异或运算;本页只是为解密标注了字段,并接受 Base64 或 Hex 输入。

支持 RC4-drop 吗?

不支持,仅支持 OpenSSL、CryptoJS(原始密钥)和大多数库所使用的标准 RC4。

探索更多分类