Giải mã DES (thuật toán cũ)

Giải mã bản mã DES cũ: dữ liệu Salted__ của OpenSSL des-cbc với mật khẩu, hoặc dữ liệu thô với khóa hex 8 byte và IV. Phần đệm được kiểm tra cục bộ.

DES không an toàn: khóa 56 bit có thể bị dò vét cạn trong vài giờ. Chỉ dùng để đọc dữ liệu cũ, tuyệt đối không dùng để bảo vệ dữ liệu mới. Hãy dùng AES.

Kết quả ở định dạng OpenSSL "Salted__" mã hóa Base64: 8 byte salt ngẫu nhiên rồi đến bản mã. Khóa và IV được dẫn xuất từ mật khẩu và salt, nên cùng một văn bản sẽ cho kết quả khác nhau mỗi lần. Lệnh tương đương:

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

Chạy hoàn toàn trong trình duyệt. Dữ liệu của bạn không bao giờ bị tải lên.

Giải mã DES là gì?

Giải mã dữ liệu được mã hóa bằng DES đơn – ví dụ file từ hệ thống cũ hoặc giá trị tạo bằng openssl enc -des-cbc. Công cụ chấp nhận định dạng Base64 Salted__ của OpenSSL với mật khẩu hoặc bản mã thô với khóa và IV hex.

Cách sử dụng Giải mã DES

  1. Chọn đúng Nguồn khóa đã dùng khi mã hóa: Mật khẩu (tương thích OpenSSL) cho dữ liệu U2FsdGVkX1… ("Salted__"), hoặc Khóa thô + IV (hex) cho bản mã thô.
  2. Nhập mật khẩu (và cùng phương thức Dẫn xuất khóa), hoặc khóa và IV dạng hex.
  3. Đặt cùng Chế độ và Đệm (padding) như bên gửi rồi dán Bản mã (Base64 hoặc Hex).
  4. Bấm Giải mã. Giữ kết quả dạng Văn bản (UTF-8), hoặc chuyển sang Hex nếu bản rõ là dữ liệu nhị phân.

Ví dụ

Đầu vào
U2FsdGVkX18BAgMEBQYHCJnMd6AFlnrJQetke2YRwuM= (passphrase "secret", CBC, EVP_BytesToKey MD5)
Đầu ra
Hello, World!

Được tạo bằng openssl enc -des-cbc -md md5 -k secret -S 0102030405060708 -a.

Khi nào nên dùng Giải mã DES

Dùng để khôi phục dữ liệu từ hệ thống cũ hoặc kiểm tra vector kiểm thử DES. Sau khi giải mã, hãy mã hóa lại bằng AES mọi thứ đáng giữ.

Giải mã DES hoạt động như thế nào

Với đầu vào Salted__, salt được đọc từ byte 8–16 và khóa cùng IV 8 byte được dẫn xuất lại từ mật khẩu (EVP_BytesToKey MD5 hoặc PBKDF2-SHA256). Đầu vào thô được giải mã bằng khóa và IV 8 byte của bạn. Ở CBC và ECB, phần đệm PKCS#7 được kiểm tra để khóa sai cho ra lỗi rõ ràng.

Các Trường Hợp Sử Dụng Phổ Biến

  • Đọc file cấu hình hoặc file xuất cũ được mã hóa DES
  • Xác minh các bài kiểm thử đáp án đã biết của DES
  • Gỡ lỗi một tích hợp cũ vẫn dùng DES-CBC
  • Chuyển các giá trị mã hóa DES sang AES

Lưu Ý Bảo Mật

DES dùng khóa 56 bit có thể bị dò vét cạn trong vài giờ trên phần cứng phổ thông. Chỉ dùng công cụ này để đọc hoặc tái tạo dữ liệu cũ; đừng bao giờ mã hóa dữ liệu mới bằng DES.

Câu Hỏi Thường Gặp

Giải mã thất bại với "Invalid padding". Vì sao?

Khóa, IV hoặc chế độ không khớp, hoặc dữ liệu hoàn toàn không phải DES (có thể là 3DES, cũng có khối 8 byte). Hãy thử công cụ giải mã Triple DES nếu khóa dài 16 hoặc 24 byte.

Công cụ có dò vét cạn được khóa DES bị mất không?

Không. Nó chỉ giải mã bằng khóa hoặc mật khẩu bạn cung cấp.

Lệnh OpenSSL nào giải mã được cùng dữ liệu?

openssl enc -d -des-cbc -md md5 -a -A -provider legacy -provider default -k <passphrase> – trang hiển thị lệnh theo thiết lập của bạn.

Khám phá thêm danh mục