DES 解密(旧版)

解密旧版 DES 密文:使用口令的 OpenSSL des-cbc Salted__ 数据,或使用 8 字节十六进制密钥和 IV 的原始数据。填充在本地校验。

DES 已不安全:56 位密钥可在数小时内被暴力破解。仅用于读取旧数据,切勿用来保护新数据,请改用 AES。

输出为 Base64 编码的 OpenSSL “Salted__” 格式:8 字节随机盐后接密文。密钥和 IV 由口令和盐派生,因此同一段文本每次加密结果都不同。等效命令:

openssl enc -des-cbc -d -md md5 -a -A -provider legacy -provider default -k '…'

完全在浏览器中运行,您的数据不会被上传。

什么是 DES 解密?

解密用单重 DES 加密的数据——例如旧系统的文件,或用 openssl enc -des-cbc 生成的值。它接受使用口令的 OpenSSL Salted__ Base64 格式,或使用十六进制密钥和 IV 的原始密文。

如何使用 DES 解密

  1. 选择与加密时相同的密钥来源:对于 U2FsdGVkX1…("Salted__")数据选择口令(兼容 OpenSSL),对于原始密文选择原始密钥 + IV(十六进制)。
  2. 输入口令(以及相同的密钥派生方式),或输入十六进制密钥和 IV。
  3. 设置与发送方相同的模式和填充,并粘贴密文(Base64 或 Hex)。
  4. 点击解密。输出保持为文本 (UTF-8),如果明文是二进制,则切换为 Hex。

示例

输入
U2FsdGVkX18BAgMEBQYHCJnMd6AFlnrJQetke2YRwuM= (passphrase "secret", CBC, EVP_BytesToKey MD5)
输出
Hello, World!

由 openssl enc -des-cbc -md md5 -k secret -S 0102030405060708 -a 生成。

何时使用 DES 解密

用于从遗留系统中恢复数据,或检查 DES 测试向量。解密之后,任何值得保留的数据都应使用 AES 重新加密。

DES 解密 的工作原理

对于 Salted__ 输入,盐从第 8–16 字节读取,8 字节的密钥和 IV 由口令重新派生(EVP_BytesToKey MD5 或 PBKDF2-SHA256)。原始输入则用你提供的 8 字节密钥和 IV 解密。在 CBC 和 ECB 中会检查 PKCS#7 填充,因此密钥错误时会给出明确的错误提示。

常见用例

  • 读取旧的 DES 加密配置或导出文件
  • 验证 DES 已知答案测试
  • 调试仍在使用 DES-CBC 的遗留集成
  • 把 DES 加密的值迁移到 AES

安全提示

DES 使用 56 位密钥,在普通硬件上几小时内就能被暴力破解。请仅用此工具读取或复现遗留数据;切勿用 DES 加密新数据。

常见问题

解密失败并提示“填充无效”,为什么?

密钥、IV 或模式不匹配,或者数据根本不是 DES(可能是同样使用 8 字节分组的 3DES)。如果密钥是 16 或 24 字节,请试试 Triple DES 解密工具。

工具能暴力破解丢失的 DES 密钥吗?

不能。它只会用你提供的密钥或口令解密。

哪个 OpenSSL 命令能解密同样的数据?

openssl enc -d -des-cbc -md md5 -a -A -provider legacy -provider default -k <passphrase>——页面会显示与你的设置对应的命令。

探索更多分类