123问免费工具与知识服务
123问工具大全› 工具大全› 加密编码› DES加解密

🔐 DES加解密

纯JS实现 · CBC/ECB模式 · Base64/Hex输出

DES加解密常见问题

DES是什么?

DES(数据加密标准)是一种分组密码算法,使用56位有效密钥对64位(8字节)数据块进行加密。由IBM研发,1977年被NIST采用,曾是使用最广泛的加密标准。如今因密钥太短已被AES取代,主要用于学习和兼容旧系统。

DES还安全吗?

DES的56位密钥空间约2^56,用专用硬件可在数小时到数天内暴力穷举攻破。1999年EFF就曾用22小时破解过。所以DES现在完全不推荐用于保护敏感数据,请改用AES-256。

DES需要多长的密钥?

DES使用8字节(64位)密钥,但实际有效位只有56位——每个字节的最高位是奇偶校验位。工具会自动取输入的前8字节作为密钥,不足补零,多余忽略。

ECB和CBC模式选哪个?

ECB简单,但相同明文块产出相同密文,有模式泄露风险;CBC需要8字节IV,每个块先和上一密文块异或再加密,安全性更高。推荐默认用CBC。

解密结果对不上是怎么回事?

很可能原因:密钥与加密时不一致、IV不同、密文被改动、或用错输出格式(密文是Base64却用Hex解析)。DES是非流式分组加密,任何一位错都会导致整块解不开。

DES和三重DES(3DES)是什么关系?

3DES就是把DES执行三次(加密-解密-加密),密钥长度变为112或168位,安全性显著提升,但速度慢。很多旧银行系统还在用3DES,正在向AES迁移。

为什么现在都用AES不用DES?

核心是密钥太短。AES-128的密钥空间是DES的2^72倍,暴力破解在物理上不可行;同时AES速度快、实现更简单干净。所以AES全面取代了DES。

DES加解密 - 示例演示

示例一:ECB模式加密

输入:明文"HELLO DES",密钥"12345678",ECB模式,Hex输出
结果:输出一段十六进制密文,用同一密钥解密可还原"HELLO DES"
ECB不需要IV,适合演示DES的分块过程,但真实场景不建议用。

示例二:CBC模式加密

输入:明文"Data Encryption Standard",密钥"12345678",IV"12345678",CBC模式,Base64输出
结果:密文为Base64字符串,长度是最接近明文字节数的8字节整数倍
CBC需要IV,且解密必须用同一IV。建议把8字节的IV与密文一起保存。

示例三:演示DES弱密钥

输入:明文"TEST",密钥"11111111"(全1),ECB模式
结果:全1的密钥是DES的"弱密钥",加密后某些块会呈现周期性模式,安全性进一步下降
弱密钥是DES的历史局限之一,也是它被淘汰的众多原因中的一个。

DES加解密深度解读

DES的分组结构一瞥

DES按64位(8字节)分块,每块经过初始置换、16轮Feistel迭代、最终置换三个大步骤。

每轮中,右半32位先扩展成48位,与48位轮密钥异或,再经过8个S盒压缩回32位,然后与左半异或并交换。如此反复16轮,把明文彻底扩散。

密钥调度:56位主密钥分两半各28位,每轮左移1或2位,再压缩置换出48位轮密钥,共生成16个轮密钥。

DES核心参数速查
参数数值
分组长度64位(8字节)
有效密钥56位
CPU密钥64位(含8位校验)
加密轮数16轮
S盒个数8个(每个6→4位)
现役状态已被AES取代

DES为什么会被破解?

根本原因是密钥空间太小。56位意味着约7.2×10^16种可能,放在今天看来微不足道。

  • 1997年,RSA公司公开悬赏破解DES,一台普通PC耗时数月成功。
  • 1998年,EFF的"Deep Crack"专用机器56小时内破解。
  • 1999年,Deep Crack + 分布式计算仅22小时15分钟破解。
  • 对比:AES-128的密钥空间是DES的约4.7×10^21倍,暴力破解在物理上不可行。

除此之外,DES还存在弱密钥、半弱密钥、互补性等理论弱点,进一步加强了被淘汰的理由。

从DES到AES的一次密码学换代

1997年NIST面向全球征集AES候选算法,1998年选出15个初选,最终Rijndael算法在2000年胜出,命名为AES。

DES vs AES 对比
维度DESAES
分组长度64位128位
密钥长度56位128/192/256位
结构Feistel网络代替置换网络
轮数16轮10/12/14轮
速度较慢快
现状已淘汰全球标准

AES不仅更安全,硬件实现也更高效,是当代对称加密的绝对主流。

DES在今天还有哪些用处?

  • 学习密码学:DES结构清晰,是理解Feistel网络和S盒的经典教材。
  • 兼容旧系统:部分老式POS机、遗留数据库、早期加密协议仍在使用。
  • 教学演示:本工具就是为教学和兼容场景设计的。
  • 3DES过度:部分系统用3DES作为过渡,再逐步迁移到AES。

但请记住:任何新项目都不应再选用DES,一律用AES。

DES加解密参考数据

DES密文长度与明文关系(PKCS7填充)

明文字节补位后Hex密文Base64密文
1字节8字节16字符12字符
7字节8字节16字符12字符
8字节16字节32字符24字符
100字节104字节208字符140字符

分组密码发展时间线

年份事件
1977DES被NIST定为标准
1999DES在22小时内被破解
2000Rijndael胜出,命名AES
2001NIST正式发布AES标准
20053DES替代DES用于FIPS

使用说明

使用方法

1. 输入待加密/解密的文本。

2. 输入密钥(8字符)。

3. 选择加密模式(CBC或ECB)。

4. 选择输出格式。

5. 点击加密或解密按钮。

分享工具: Facebook Twitter 微博 复制链接