Toolonit
  1. Trang chủ
  2. Mã hóa
  3. Mã hóa / Giải mã
  4. DES

Mã hóa và giải mã DES

Giải mã hoặc mã hóa dữ liệu cũ bằng DES đơn.

DES đã yếu theo tiêu chuẩn ngày nay — hãy dùng để đọc dữ liệu cũ; với dữ liệu mới, hãy dùng AES hoặc ChaCha20. Đến AES

Mã hóa bằng

Bạn sẽ cần lại mật khẩu này để giải mã. Không có gì bạn gõ rời khỏi trang này.

Số vòng lặp PBKDF2

Mặc định của OpenSSL là 10.000. Số nào cũng được: càng nhiều thì mật khẩu càng khó đoán; khi giải mã cần đúng số đó.

Chế độ

Lựa chọn thông dụng với OpenSSL. Cần IV; đệm cho đủ khối.

Xuất dạng
Làm tương tự với OpenSSL
openssl enc -des-cbc -pbkdf2 -iter 10000 -a -A -provider legacy -provider default

OpenSSL sẽ hỏi mật khẩu; hãy dán văn bản vào đó, hoặc thêm tệp -in và -out.

DES, Tiêu chuẩn Mã hóa Dữ liệu ra đời năm 1977, mã hóa các khối 8 byte bằng khóa 64 bit, trong đó chỉ 56 bit có tác dụng; 8 bit còn lại là bit chẵn lẻ. Nó đã bị phá bằng vét cạn từ lâu, nhưng các tệp, cấu hình và cơ sở dữ liệu cũ vẫn còn chứa giá trị mã hóa DES, và trang này đọc lẫn ghi được chúng: mặc định chế độ CBC, hoặc ECB, CFB, OFB, CTR, với mật khẩu theo định dạng openssl enc -pbkdf2 hoặc khóa và IV hex 16 chữ số. Hãy dùng nó để khôi phục dữ liệu cũ, rồi mã hóa lại dữ liệu đó bằng AES. Mọi thứ chạy trong trình duyệt: dữ liệu và khóa không bao giờ rời khỏi thiết bị của bạn, miễn phí và không cần đăng ký.

Cách giải mã văn bản được mã hóa DES

  1. Chọn Giải mã và dán văn bản Base64 hoặc hex — định dạng được nhận diện tự động — hoặc chọn Mã hóa và gõ văn bản.
  2. Nhập mật khẩu, hoặc chuyển sang Khóa & IV (hex) rồi nhập khóa 16 chữ số và IV 16 chữ số (ECB không có IV).
  3. Chọn chế độ đã dùng để tạo dữ liệu — thường là CBC hoặc ECB. Chỉ bật Không đệm nếu dữ liệu được mã hóa mà không có đệm PKCS#7.
  4. Sao chép hoặc tải xuống kết quả; các byte không phải văn bản sẽ hiển thị dạng hex.

Tính năng

  • DES đơn với khóa 64 bit: 56 bit khóa cộng 8 bit chẵn lẻ
  • Chế độ CBC, ECB, CFB, OFB và CTR; đệm PKCS#7 hoặc không đệm
  • Chế độ mật khẩu theo định dạng openssl enc -pbkdf2, số vòng lặp PBKDF2 tùy ý
  • Chế độ Khóa & IV với khóa và IV hex 16 chữ số, tự nhập hoặc tạo ngẫu nhiên
  • Lệnh openssl làm việc tương tự, kèm legacy provider của OpenSSL 3
  • Đầu vào Base64 hoặc hex được nhận diện tự động; kết quả không phải văn bản hiển thị dạng hex và tải xuống được dưới dạng byte

Có riêng tư không?

Có. DES chạy bằng WebAssembly ngay trong trình duyệt, nên dữ liệu cũ bạn giải mã cùng khóa hoặc mật khẩu của nó không bao giờ bị tải lên hay lưu ở bất cứ đâu.

Câu hỏi thường gặp

Mã hóa DES có an toàn không?

Không. Khóa 56 bit có thể bị tìm ra bằng cách thử mọi khả năng: một cỗ máy chuyên dụng đã làm được điều đó vào năm 1998, và ngày nay chi phí còn rẻ hơn nhiều. Chỉ dùng DES để đọc dữ liệu vốn đã được mã hóa DES, rồi mã hóa lại bằng AES hoặc ChaCha20.

Vì sao OpenSSL báo “Error setting cipher DES-CBC”?

Vì OpenSSL 3 đã chuyển DES sang legacy provider, vốn không được nạp mặc định. Hãy thêm nó: echo 'U2FsdGVkX1…' | openssl enc -d -des-cbc -pbkdf2 -iter 10000 -a -A -provider legacy -provider default. Dùng -des-ecb, -des-cfb hoặc -des-ofb cho các chế độ đó (OpenSSL không có DES CTR), và -K <16 chữ số hex> -iv <16 chữ số hex> thay cho -pbkdf2 -iter ở chế độ Khóa & IV.

Khóa DES trông như thế nào?

Gồm 8 byte, viết thành 16 chữ số hex. Bit thấp nhất của mỗi byte là bit chẵn lẻ mà DES bỏ qua, nên các khóa chỉ khác nhau ở những bit này sẽ giải mã giống nhau. IV cũng dài 8 byte; ECB không dùng IV. Ở chế độ mật khẩu, cả hai được tạo từ mật khẩu nên bạn không cần đến chúng.

DES và Triple DES khác nhau thế nào?

Triple DES chạy DES ba lần với ba khóa — khóa 192 bit, độ mạnh thực tế khoảng 112 bit — đó là lý do nó tồn tại lâu hơn DES. DES đơn chỉ có một khóa 56 bit và có thể bị vét cạn. Nếu khóa của bạn dài 16 hoặc 24 byte, dữ liệu là Triple DES: hãy dùng trang Triple DES.

Vì sao tôi nhận được văn bản không đọc được?

Vì một thiết lập khác với lúc mã hóa: mật khẩu hoặc khóa, số vòng lặp, chế độ hoặc kiểu đệm. Với CFB, OFB và CTR, DES không phát hiện được sai lệch và trả về các byte ngẫu nhiên, được trang hiển thị dạng hex; còn với CBC và ECB, sai lệch thường dẫn đến báo lỗi.

Công cụ liên quan