🔐 DES / 3DES 加密解密
浏览器本地 DES 与 3DES(2-key/3-key)加密解密工具,纯 JS 实现零依赖。支持 ECB/CBC/CFB/OFB/CTR 五种模式与 PKCS#7/Zero/ANSI X.923/ISO 10126/No Padding 五种填充,Key/IV/输入/输出均可独立切换 Hex/UTF-8/Base64 编码,实时字节长度提示,内置 NIST 测试向量。顶部常驻 NIST 废弃警示(DES 2005、3DES 2024-01-01),K1/K2/K3 字节可视化,仅用于教学演示与兼容旧数据。所有密钥、明文、密文都不会由本工具上传。
操作方向
算法变体
分组模式
填充方式
DES / 3DES 分组长度为 64 位,IV 需要 8 字节(Hex: 16 字符)。
输出格式
常见问题
DES 和 3DES 是否还能用于生产环境?
DES 的有效强度仅 56 位,1999 年已被 22 小时暴破;NIST 于 2005 年撤销 FIPS 46-3。3DES(TDEA)名义 168 位、有效 112 位,受 Sweet32(CVE-2016-2183)64 位分组生日攻击限制,NIST 于 2024-01-01 起全面 disallow。新系统请使用 AES-256-GCM 或 ChaCha20-Poly1305。本工具仅用于解密旧数据或教学演示。
2-key 3DES 与 3-key 3DES 的区别?
3DES 将三次 DES 级联:E_K3(D_K2(E_K1(P)))。3-key(K1≠K2≠K3,24 字节)提供 168 位名义强度;2-key(K1=K3≠K2,16 字节)退化为 112 位强度,NIST 于 2015 年已弃用。若 K1=K2=K3,3DES 退化为单 DES。Node.js 命名:des-ede3-cbc(3-key)、des-ede-cbc(2-key)。
PKCS#5 和 PKCS#7 填充有什么区别?
PKCS#5 原本为 8 字节分组(DES)定义,PKCS#7 扩展为任意分组长度。在 DES / 3DES(8 字节分组)场景下两者输出完全一致,可互相替换。Java 的 PKCS5Padding、.NET 的 PKCS7、CryptoJS 的 Pkcs7 对 DES 产生的字节流相同。
为什么显示"字节数"而不是"字符数"?
DES 密钥长度按字节度量:DES = 8 字节、3DES 2-key = 16 字节、3DES 3-key = 24 字节。在 UTF-8 下一个汉字占 3 字节、一个 ASCII 字符占 1 字节,所以"字符数"会误导。此工具实时显示当前字节数与期望字节数,避免长度不匹配或静默 0x00 补齐。
我的数据安全吗?
所有加密、解密、密钥与 IV 的处理都在你的浏览器本地完成(纯 JavaScript 实现,不调用任何外部 API),密钥与明文不会由本工具上传。本工具通过 Wikipedia 与 NBS SP 500-20 公开测试向量验证正确性。仍建议将本工具用于本地文件或公开测试数据,避免在浏览器里处理高度敏感的真实密钥。
在线 DES / 3DES 加密解密工具,浏览器本地处理(纯 JS 实现,零依赖)。支持单 DES、3DES 2-key(16 字节)与 3DES 3-key(24 字节)三种变体,ECB/CBC/CFB/OFB/CTR 五种分组模式,PKCS#7/Zero/ANSI X.923/ISO 10126/No Padding 五种填充方式。密钥、IV、输入、输出均可独立切换 Hex / UTF-8 / Base64 编码,实时显示字节长度。内置 NIST/Wikipedia 测试向量一键加载,K1/K2/K3 字节可视化,顶部常驻 NIST 废弃警示(DES 2005 年撤销、3DES 2024-01-01 后全面禁用)。仅用于教学演示与兼容旧数据;新系统请使用 AES-256-GCM。密钥与明文不会由本工具上传。