三重 DES(3DES)加密与解密
使用三重 DES(DES-EDE3)加密和解密文本,用于兼容旧系统。
按现在的标准,Triple DES 已不够安全——可用来读取旧数据;新数据请使用 AES 或 ChaCha20。 前往 AES
解密时还需要这个密码。输入的任何内容都不会离开本页。
OpenSSL 的默认值是 10,000。任何次数都可以:次数越多,密码越难猜;解密时必须使用相同的次数。
使用 OpenSSL 时的常用选择。需要 IV;填充为完整的分组。
openssl enc -des-ede3-cbc -pbkdf2 -iter 10000 -a -AOpenSSL 会提示输入密码;把文本粘贴进去,或加上 -in 和 -out 文件。
三重 DES(3DES、TDES、TDEA)把 DES 运行三次——加密、解密、再加密——使用由三个 DES 密钥组成的 192 位密钥。支付系统、较旧的数据库和遗留系统集成至今仍在使用它,所以本页主要用于读取这些系统的数据,或为它们生成数据。它用三密钥三重 DES(OpenSSL 的 des-ede3)加密和解密文本,默认 CBC 模式,也可选 ECB、CFB、OFB 或 CTR,可以使用 openssl enc -pbkdf2 格式的密码,或你自己的 48 个 hex 字符的密钥及 IV。新数据请使用 AES。一切都在浏览器中完成:数据及其密钥不会离开你的设备;免费,无需注册。
如何解密或加密三重 DES 文本
- 选择“解密”并粘贴 Base64 或 hex 文本(格式会自动识别),或者选择“加密”并输入文本。
- 输入密码,或切换到“密钥和 IV(hex)”,输入 48 个 hex 字符的密钥和 16 个 hex 字符的 IV(ECB 没有 IV)。
- 选择数据加密时所用的模式,通常是 CBC。只有当数据加密时没有使用 PKCS#7 填充,才打开“无填充”。
- 复制或下载结果。不是文本的结果会以 hex 显示,并以字节形式下载。
功能
- 三密钥三重 DES(DES-EDE3,192 位密钥);双密钥按 K1 K2 K1 输入即可使用
- CBC、ECB、CFB、OFB、CTR 模式,可用 PKCS#7 填充或不填充
- 密码模式的结果可由 openssl enc -des-ede3-cbc -pbkdf2 读取,无需 OpenSSL 的 legacy provider
- 密钥和 IV 模式:48 个 hex 字符的密钥和 16 个 hex 字符的 IV
- PBKDF2 迭代次数可与数据匹配:10,000、100,000、600,000 或任意其他次数
- 输入输出均支持 Base64 或 hex;非文本结果以 hex 显示、以字节保存
- 给出对应的 openssl 命令,其中不含你的密码或密钥
隐私安全吗?
是的。三重 DES 在浏览器的 WebAssembly 中运行。你解密的数据及其密钥或密码都不会上传或保存,因此来自支付或银行系统的记录始终留在你的电脑上。
常见问题
三重 DES 现在还安全吗?
对新数据来说不安全。它的分组只有 8 字节,同一密钥下加密大量数据时容易受到攻击(Sweet32 攻击),NIST 也已规定 2023 年之后不得再用三重 DES 加密。三密钥形式仍有约 112 位的安全强度,已有数据不会一夜之间被破解,但新的内容请用 AES 或 ChaCha20 加密。
能用 OpenSSL 解密吗?
可以,而且三重 DES 不需要 legacy provider:echo 'U2FsdGVkX1…' | openssl enc -d -des-ede3-cbc -pbkdf2 -iter 10000 -a -A(随后 OpenSSL 会提示输入密码)。ECB 用 -des-ede3,CFB 和 OFB 分别用 -des-ede3-cfb 和 -des-ede3-ofb;OpenSSL 没有三重 DES 的 CTR 模式。密钥和 IV 模式下,用 -K <48 个 hex 字符> -iv <16 个 hex 字符> 代替 -pbkdf2 -iter。
我的密钥只有 16 字节,这是双密钥三重 DES 吗?
是的。本页使用三密钥三重 DES,而双密钥 K1 K2 等同于三密钥 K1 K2 K1:在密钥和 IV 模式下,先输入你的 32 个 hex 字符,再把其中前 16 个重复输入一遍。
如何把三重 DES 数据迁移到 AES?
先在这里用原来的密钥或密码解密并复制文本,再到 AES 页面重新加密——对方支持的话选 GCM 模式,对方使用 openssl enc 的话选 CBC。两步都在浏览器中完成,明文在中间不会被发送到任何地方。
为什么解密失败,或者得到无法阅读的文本?
因为某项设置与加密时不同:密码或密钥、迭代次数、模式或填充。密文中只保存了盐,其他设置都无从检测。在 CBC 和 ECB 模式下,设置不符通常会报错;CFB、OFB 和 CTR 无法察觉,只会得到以 hex 显示的随机字节。用原始密钥而非密码加密的数据,需要使用密钥和 IV 模式。