Toolonit
  1. 首页
  2. 加密
  3. 加密 / 解密
  4. Serpent

Serpent 加密与解密

使用曾入围 AES 决赛的 Serpent 加密和解密文本。

加密方式

解密时还需要这个密码。输入的任何内容都不会离开本页。

PBKDF2 迭代次数

OpenSSL 的默认值是 10,000。任何次数都可以:次数越多,密码越难猜;解密时必须使用相同的次数。

模式

使用 OpenSSL 时的常用选择。需要 IV;填充为完整的分组。

密钥长度
输出格式
OpenSSL 等效命令

OpenSSL 没有 Serpent 密码。

Serpent 由 Ross Anderson、Eli Biham 和 Lars Knudsen 设计,在 AES 竞赛中名列第二。它以 16 字节为一组,用 128、192 或 256 位密钥经过 32 轮加密——这是刻意留出的大安全余量,也因此在速度上输给了最终成为 AES 的 Rijndael——目前没有已知的实际攻击。在这里可以用 Serpent 加密和解密文本,默认 Serpent-256(也可选 128 或 192),支持 CBC、ECB、CTR、CFB 或 OFB 模式。使用密码时,密钥和 IV 由 PBKDF2-HMAC-SHA256 加随机盐派生,输出采用 openssl enc -pbkdf2 的 Salted__ 格式;也可以输入你自己的 hex 密钥和 IV。工具在浏览器中运行,你的文本和密钥不会离开设备;免费,无需注册。

如何用 Serpent 加密文本

  1. 选择“加密”或“解密”。输入要加密的文本,或粘贴要解密的 Base64 或 hex 文本,格式会自动识别。
  2. 输入密码(点“生成”可得到一个强密码),或切换到“密钥和 IV(hex)”,输入或生成密钥和 32 个 hex 字符的 IV(ECB 没有 IV)。
  3. 选择密钥长度(默认 256 位)和模式(默认 CBC)。解密时,必须使用与加密时相同的设置。
  4. 复制或下载结果,也可以点“交换”把结果移到输入框并切换方向。

功能

  • Serpent 支持 128、192 或 256 位密钥,完整 32 轮
  • CBC、ECB、CTR、CFB、OFB 模式;PKCS#7 填充或不填充
  • 标准字节序,与 NESSIE 测试向量一致
  • 密码模式使用 PBKDF2-HMAC-SHA256,带 openssl enc -pbkdf2 的 Salted__ 头
  • 密钥和 IV 模式:使用自己的 hex 密钥和 IV,或自动生成
  • 输入输出均支持 Base64 或 hex;可复制、下载结果或点“交换”

隐私安全吗?

是的。Serpent 在浏览器内的 WebAssembly 中运行;你的文本、密码和密钥不会发送到服务器,也不会保存在浏览器中。

常见问题

Serpent 安全吗?

安全。目前没有针对完整 32 轮 Serpent 的已知实际攻击;它的设计目标就是即使攻击手段进步也依然安全,代价是速度。对于普通大小的文本,这点速度差异无关紧要。AES 几乎随处都受支持,所以当与你交换数据的系统使用 Serpent 时,再选择它。

OpenSSL 能解密 Serpent 吗?

不能——OpenSSL 不包含 Serpent,所以没有 openssl 命令能读取这里的输出。要在其他程序中使用这些数据,请选择密钥和 IV 模式,并把相同的密钥、IV、模式和填充(CBC 和 ECB 用 PKCS#7)交给那个程序。

为什么其他程序生成的 Serpent 数据解密不了?

如果密钥、IV 和模式都正确,很可能是字节序的问题:有些实现会把 Serpent 的输入和输出字节倒过来写——Bouncy Castle 把这种变体称为 Tnepres。本页使用 NESSIE 测试向量的标准字节序,所以 Tnepres 实现生成的数据无法在这里解密。

能打开用 Serpent 加密的 VeraCrypt 加密卷吗?

不能。VeraCrypt 以 XTS 模式的 Serpent 加密整个磁盘和容器文件,并带有自己的文件头;本页加密和解密的是文本。VeraCrypt 加密卷请用 VeraCrypt 打开;如果要在浏览器中加密单个文件,请使用“文件加密”。

相关工具