在线工具箱
Rabbit 加密

Rabbit 加密解密工具

RFC 4503 标准的 Rabbit 流密码加解密,支持 128 位密钥与可选 64 位 IV。

隐私安全:所有处理均在您的浏览器本地完成,数据绝不上传
Rabbit加密安全
🔐

Rabbit 为无认证的流密码,不含完整性校验

Rabbit 严格遵循 RFC 4503,速度快、适合软件实现,但不能检测密文是否被篡改。 若需要完整性保护,请使用带认证的AES-GCM。

算法参数

密钥固定为 128 位(16 字节);IV 为可选 64 位(8 字节)。解密时请保持密钥、IV 与输出格式与加密时完全一致。

密钥(Key)

初始向量(IV,可选)

明文 / 密文

Rabbit 为流密码,加密与解密使用同一运算:解密时请保持密钥、IV 与输出格式完全一致。

工作原理

  1. 1输入 128 位密钥(16 字节),并选择密钥格式(UTF-8 / Hex / Base64);UTF-8 格式下密钥文本需恰好为 16 字节。
  2. 2按需启用 64 位 IV 并填入 8 字节 IV;不启用时即为 RFC 4503 定义的无 IV 模式。
  3. 3在明文框中输入内容后点击「加密」,工具在本地依次执行密钥调度(4 轮预热与计数器异或)、IV 调度(4 轮预热)并抽取密钥流与明文异或。
  4. 4将密文粘贴到密文框并保持相同密钥、IV 与输出格式,点击「解密」还原明文;文件模式下可拖入文件加解密并下载结果。

常见问题

Rabbit 是什么算法?安全吗?

Rabbit 是 eSTREAM 软件组合中入选的同步流密码,并被纳入 ISO/IEC 18033-4 与 RFC 4503。迄今没有公开的有效实用攻击,作为流密码它速度快、适合软件实现。但它属于无认证加密(AEAD 之外),不提供完整性校验;若需要防篡改,建议使用 AES-GCM 或 ChaCha20-Poly1305。

为什么密钥必须正好是 16 字节?

RFC 4503 规定 Rabbit 使用固定 128 位(16 字节)密钥,密钥长度不可变。如果你用 UTF-8 格式输入了不足或超过 16 字节的文本,工具会提示长度不合法;此时可改用 Hex / Base64 格式输入精确的 16 字节,或点击「随机密钥」生成合规密钥。

IV 是做什么的?可以不填吗?

IV(初始向量,64 位)用于在复用同一密钥时产生不同密钥流,避免相同明文得到相同密文。Rabbit 的 IV 是可选的:不启用时即为 RFC 4503 的无 IV 模式。注意流密码的 IV 不能重复——同一密钥下重复使用相同 IV 会泄露明文异或关系。

为什么加密后密文长度和明文一样?

Rabbit 是流密码,逐字节与密钥流异或,不进行分组和填充,因此密文长度恒等于明文长度。这也是它与 AES、DES 等分组密码的重要区别。

为什么解密不需要单独的算法?

异或运算满足自反性:密文 = 明文 XOR 密钥流,明文 = 密文 XOR 密钥流。因此只要密钥、IV 与输出格式一致,用同一运算即可解密。若解密结果是乱码,说明参数与加密时不一致(流密码无完整性校验,无法自动判断)。

数据会上传到服务器吗?

不会。Rabbit 算法由纯 TypeScript 在浏览器本地实现,加解密全程不发起任何网络请求,断网也能正常使用。

更多在线工具