DES 加密解密工具
支持 DES 和 Triple DES(3DES),五种加密模式可选
加密配置
什么是 DES?
DES(Data Encryption Standard,数据加密标准)诞生于 1977 年,由 IBM 研发并经美国国家安全局修改后成为联邦标准。它采用 Feistel 网络结构,将 64 位明文分成左右两半,经过 16 轮迭代运算生成密文。DES 的密钥名义上是 64 位,但其中 8 位用作奇偶校验,实际有效密钥长度只有 56 位。 56 位密钥在当年算得上安全,但随着计算能力的飞速提升,1999 年就已经能在 22 小时内被暴力破解。为了延续 DES 的生命力,Triple DES(3DES)应运而生——它用三组不同的密钥对数据执行三次 DES 加密,有效密钥长度达到 168 位,安全性大幅提升。3DES 被广泛用于金融支付领域,至今仍是 EMV 芯片卡和部分银行系统的底层加密方案。 虽然 AES 已经取代 DES 成为新的加密标准,但在很多遗留系统、金融协议和嵌入式设备中,DES 和 3DES 仍然在发挥作用。本工具支持 DES 和 3DES 两种算法,配合 CBC、ECB、CFB、OFB、CTR 五种模式,方便你在兼容旧系统或学习密码学时使用。
使用方法
基本操作
- 选择加密算法:DES(56 位密钥)或 3DES(168 位密钥)
- 选择加密模式,推荐 CBC 模式
- 选择填充方式,一般用 PKCS#7 即可
- 输入密钥或点「生成随机密钥」自动创建
- 对于需要 IV 的模式,输入或随机生成初始化向量
- 左边输入明文(加密)或密文(解密),右边自动出结果
- 点「复制」拿走结果,或用「交换」按钮互换输入输出
加密模式说明
使用建议
- 如果能用 AES 就优先用 AES,DES 主要是为了兼容旧系统
- 3DES 比 DES 安全得多,但速度也慢三倍左右
- 每次加密都该用不同的随机 IV,别偷懒重复用
- ECB 模式加密多块数据会暴露模式,尽量别用
- 密钥别用容易猜到的字符串,随机生成最靠谱
使用示例
DES-CBC 加密
用 CBC 模式加密一段文本
明文:Hello World
密钥(hex):0123456789abcdef
IV(hex):fedcba9876543210
模式:CBC / PKCS#7
输出:Base64 格式的密文3DES 加密
Triple DES 安全性更高
算法:Triple DES
密钥(hex):24 字节(48 个 hex 字符)
模式:CBC / PKCS#7
密钥越长越安全,3DES 的 168 位密钥目前仍算安全ECB 单块加密
ECB 适合加密刚好 8 字节的数据
明文:正好8字
密钥:0123456789abcdef
模式:ECB / PKCS#7
注意:超过 8 字节的数据不建议用 ECB常见问题
Q: DES 和 3DES 有什么区别?
A: DES 用 56 位有效密钥,现在已经被认为不安全了,用普通电脑就能在几天内暴力破解。3DES 用三组密钥做三次 DES 加密,有效密钥长度 168 位,安全性高出一大截。如果你没有兼容旧系统的需求,建议直接用 3DES 或者干脆用 AES。
Q: DES 还安全吗?
A: 单独的 DES 已经不安全了。1999 年的专用设备就能在 22 小时内穷举所有密钥。现在用 GPU 集群破解 DES 只需要几个小时。所以如果涉及真正的安全需求,请用 AES 或 3DES。不过在学习密码学原理、测试旧系统兼容性这些场景下,用 DES 完全没问题。
Q: 为什么加密结果每次都不一样?
A: 这是正常的。除了 ECB 模式,其他模式都会用到随机的 IV(初始化向量),所以即使明文和密钥相同,每次加密出来的密文也不同。解密时只要密钥和 IV 正确,就能还原出原始数据。
Q: 什么是 IV?
A: IV 就是初始化向量(Initialization Vector),是加密时的一个额外参数。它的作用是让相同的明文在不同次加密中产生不同的密文,防止攻击者通过观察密文模式来推断内容。IV 不需要保密,但每次加密应该用不同的随机值。DES 的 IV 固定是 8 字节。
Q: 密钥格式选 Hex、Text 还是 Base64?
A: 三种格式只是同一个密钥的不同表示方式。Hex 是十六进制,每个字节用两个字符表示,最直观;Text 是直接用文本的字节,方便记但容易受编码影响;Base64 更紧凑。推荐用 Hex,不容易出错。点「生成随机密钥」会按你选的格式自动生成。
Q: 加密后的数据变长了多少?
A: 分组加密要求数据长度是 8 字节的整数倍,所以 PKCS#7 填充会加 1 到 8 个字节。另外输出格式也有影响:Base64 编码大约增加 33% 的体积,Hex 编码会让数据翻倍。如果你选了 NoPadding,那明文必须刚好是 8 的倍数,不然加密会报错。
Q: ECB 模式到底能不能用?
A: 能用,但要看场景。ECB 对每个 8 字节块独立加密,相同的块加密结果一样。如果只加密一个 8 字节的数据块,那 ECB 和其他模式没区别。但如果加密较长的数据(比如一段文字、一个文件),密文会保留原文的模式,不安全。简单说:短数据可以用,长数据别用。
Q: 这个工具安全吗?数据会不会泄露?
A: 所有加密解密操作都在你的浏览器里完成,用的是 crypto-js 这个成熟的加密库。数据不会发送到任何服务器。不过要注意,浏览器环境的安全性比不上专业的加密硬件,密钥可能会被浏览器插件或开发者工具看到。这个工具适合学习、测试和日常用途,生产环境建议用专业的加密方案。