Rabbit 加密解密工具
RFC 4503 标准的 Rabbit 流密码加解密,支持 128 位密钥与可选 64 位 IV。
隐私安全:所有处理均在您的浏览器本地完成,数据绝不上传Rabbit 为无认证的流密码,不含完整性校验
Rabbit 严格遵循 RFC 4503,速度快、适合软件实现,但不能检测密文是否被篡改。 若需要完整性保护,请使用带认证的AES-GCM。
算法参数
密钥固定为 128 位(16 字节);IV 为可选 64 位(8 字节)。解密时请保持密钥、IV 与输出格式与加密时完全一致。
密钥(Key)
初始向量(IV,可选)
明文 / 密文
Rabbit 为流密码,加密与解密使用同一运算:解密时请保持密钥、IV 与输出格式完全一致。
工作原理
- 1输入 128 位密钥(16 字节),并选择密钥格式(UTF-8 / Hex / Base64);UTF-8 格式下密钥文本需恰好为 16 字节。
- 2按需启用 64 位 IV 并填入 8 字节 IV;不启用时即为 RFC 4503 定义的无 IV 模式。
- 3在明文框中输入内容后点击「加密」,工具在本地依次执行密钥调度(4 轮预热与计数器异或)、IV 调度(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 在浏览器本地实现,加解密全程不发起任何网络请求,断网也能正常使用。