RC4 加解密
编码所有处理都在浏览器本地完成,数据不上传服务器
用 RC4(也叫 ARCFOUR)加解密文本。它只有十几行、跑得极快,所以被塞进了大量老协议:WEP、WPA 的 TKIP、早期的 SSL 套件、微软的 RDP、以及一批嵌入式设备 —— 你多半是为了读一段老数据或复现某个老接口的密文才需要它。⚠️ RC4 今天已经完全不安全:它的输出前几个字节明显偏离随机(第 2 个字节为 0 的概率约为 1/128,而不是 1/256),而开头若干字节的组合足以在不知道明文的情况下反推出密钥的一部分 —— WEP 就是这样被打穿的。新系统请用 AES-GCM 或 ChaCha20-Poly1305。真要兼容老系统,至少把输出的前 256 字节丢掉;本工具不替你做这件事,因为那会改变与老系统对齐的结果。
功能
- 两个方向共用同一个 PRGA —— RC4 的加密与解密本来就是同一套运算
- 密钥任意长度(1–256 字节),可写文本或十六进制(容忍冒号、空格与 0x 前缀)
- 密文输出 Base64 或十六进制,输入时两种都认
- 中文与 emoji 按 UTF-8 字节处理
- 结果确定:同一输入与密钥必然给出同一输出,没有任何随机成分
- 密钥错了会解释原因,而不是让用户以为工具坏了
使用方法
- 填入密钥(加密与解密必须完全一致)
- 选择方向:加密或解密
- 把内容粘贴进输入框
- 点「复制」取走结果
常见问题
- RC4 还能用吗?
- 新系统不要用。 它有三重问题:开头字节的统计偏置(Biased 攻击)、密钥与 IV 的关联可被利用(FMS 攻击,WEP 就死在这上面)、以及没有任何完整性校验 —— 攻击者翻转密文里的一个比特,明文里对应的比特就会翻转而接收方毫不知情。它今天的位置和 MD5 一样:只能用来读老数据、复现老系统的结果。真要选流密码,用 ChaCha20-Poly1305;要分组密码,用 AES-GCM。
- 为什么加密和解密是同一个操作?
- 因为 RC4 是流密码:它由密钥生成一串与明文等长的密钥流,然后逐字节异或。异或有个性质是「同一个数异或两次等于没异或」,所以把密文与同一串密钥流再异或一次就还原了明文 —— 加密和解密在数学上是同一个函数。这也是为什么本工具只需要一个实现:方向只影响「把输入当文本还是当密文解析」以及输出格式。
- 密钥长度有要求吗?
- 1 到 256 字节都可以(超过 256 字节的部分不会增加强度,因为 KSA 只按 `密钥[i % 长度]` 取值)。实践中用 16 字节(128 位)或更长。注意 RC4 的密钥不需要固定长度,这与 AES / DES 不同 —— 那里长度不对会直接报错。
- 解密出来的是一堆乱码,是工具坏了吗?
- 多半是密钥不对。RC4 没有校验机制,密钥错了不会报错,只会安静地解出一堆随机字节 —— 然后本工具在按 UTF-8 解码时失败了。请确认密钥与加密时完全一致(大小写、空格都算)、密钥的写法(文本还是十六进制)也一致。另一种可能是这段密文本来就不是文本,而是二进制数据。
相关工具
AES / DES 加解密
编码用 AES、DES 或 3DES 加解密文本,支持 CBC、GCM、CTR、ECB 四种模式,密钥可写文本、十六进制或 Base64,全部在本地完成。
哈希计算
编码算出文本的 MD5、SHA-1、SHA-256 或 SHA-512 摘要,也可算老系统用的 MD4 与 MD2,中文按 UTF-8 字节计算。全部在本地完成。
Base58 / 62 / 100
编码在 Base58、Base62 与 Base100 之间编解码文本,含比特币与 Flickr 两套 Base58 字母表。中文按 UTF-8 字节处理,全部在本地完成。
Base64 编解码
编码把文本转成 Base64,或把 Base64 还原成文本,中文与 emoji 都按 UTF-8 正确处理。全部在浏览器本地完成,内容不上传。
URL 编解码
编码把中文、空格与符号转义成 %XX,或把 %XX 还原成文本;整条 URL 与单独的参数值要选对方式,选错不会报错,但链接会打不开。全部在浏览器本地完成。
HTML 实体编解码
编码把 < > & 与引号转成 HTML 实体,也能把实体还原成字符,而且只解一遍:&lt; 得到的是 < 而不是尖括号。全部在浏览器本地完成。