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

Mã hóa và giải mã Triple DES (3DES)

Mã hóa và giải mã văn bản bằng Triple DES (DES-EDE3), dành cho các hệ thống cũ.

Triple 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-ede3-cbc -pbkdf2 -iter 10000 -a -A

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.

Triple DES (3DES, TDES, TDEA) chạy DES ba lần — mã hóa, giải mã, mã hóa — với khóa 192 bit gồm ba khóa DES. Hệ thống thanh toán, cơ sở dữ liệu cũ và các tích hợp đời cũ vẫn dùng nó, nên trang này chủ yếu để đọc dữ liệu của chúng hoặc tạo dữ liệu cho chúng. Công cụ mã hóa và giải mã văn bản bằng Triple DES ba khóa (des-ede3 của OpenSSL), mặc định ở chế độ CBC, hoặc ECB, CFB, OFB, CTR, dùng mật khẩu theo định dạng openssl enc -pbkdf2 hoặc khóa hex 48 chữ số và IV của riêng bạn. Với dữ liệu mới, hãy dùng AES. Mọi thứ diễn ra 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ã hoặc mã hóa văn bản Triple 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 48 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. 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ả. Kết quả không phải văn bản sẽ hiển thị dạng hex và được tải xuống dưới dạng byte.

Tính năng

  • Triple DES ba khóa (DES-EDE3, khóa 192 bit); khóa hai khóa vẫn dùng được nếu nhập theo dạng K1 K2 K1
  • Chế độ CBC, ECB, CFB, OFB và CTR, có đệm PKCS#7 hoặc không đệm
  • Chế độ mật khẩu đọc được bằng openssl enc -des-ede3-cbc -pbkdf2, không cần legacy provider của OpenSSL
  • Chế độ Khóa & IV: khóa hex 48 chữ số và IV 16 chữ số
  • Số vòng lặp PBKDF2 khớp với dữ liệu: 10.000, 100.000, 600.000 hoặc bất kỳ số nào khác
  • Base64 hoặc hex cho đầu vào và đầu ra; kết quả không phải văn bản hiển thị dạng hex và được lưu dưới dạng byte
  • Lệnh openssl tương ứng, hiển thị mà không kèm mật khẩu hay khóa của bạn

Có riêng tư không?

Có. Triple DES chạy bằng WebAssembly trong trình duyệt. Dữ liệu 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 lại, nên các bản ghi từ hệ thống thanh toán hay ngân hàng vẫn nằm trên máy tính của bạn.

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

Triple DES có còn an toàn không?

Không, với dữ liệu mới. Khối 8 byte của nó khiến lượng lớn dữ liệu dùng chung một khóa dễ bị tấn công (tấn công Sweet32), và NIST không còn cho phép dùng Triple DES để mã hóa sau năm 2023. Dạng ba khóa vẫn cho khoảng 112 bit an toàn, nên dữ liệu hiện có không bị phá ngay lập tức — nhưng hãy mã hóa mọi dữ liệu mới bằng AES hoặc ChaCha20.

Có thể giải mã bằng OpenSSL không?

Được, và Triple DES không cần legacy provider: echo 'U2FsdGVkX1…' | openssl enc -d -des-ede3-cbc -pbkdf2 -iter 10000 -a -A (sau đó OpenSSL sẽ hỏi mật khẩu). Dùng -des-ede3 cho ECB, -des-ede3-cfb hoặc -des-ede3-ofb cho các chế độ đó; OpenSSL không có Triple DES CTR. Ở chế độ Khóa & IV, dùng -K <48 chữ số hex> -iv <16 chữ số hex> thay cho -pbkdf2 -iter.

Khóa của tôi chỉ có 16 byte. Đó có phải Triple DES hai khóa không?

Đúng vậy. Trang này dùng Triple DES ba khóa, và khóa hai khóa K1 K2 tương đương với khóa ba khóa K1 K2 K1: ở chế độ Khóa & IV, hãy nhập 32 chữ số hex của bạn rồi nhập lại 16 chữ số đầu tiên.

Làm sao chuyển dữ liệu Triple DES sang AES?

Giải mã dữ liệu tại đây bằng khóa hoặc mật khẩu của nó, sao chép văn bản rồi mã hóa lại trên trang AES — chế độ GCM nếu bên đọc hỗ trợ, CBC nếu bên đó dùng openssl enc. Cả hai bước đều chạy trong trình duyệt, nên văn bản gốc không bị gửi đi đâu ở giữa.

Vì sao giải mã thất bại hoặc ra 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. Bản mã chỉ lưu salt, nên không thể phát hiện gì khác. Ở CBC và ECB, sai lệch thường dẫn đến báo lỗi; CFB, OFB và CTR không nhận ra được nên bạn nhận về các byte ngẫu nhiên, hiển thị dạng hex. Dữ liệu được mã hóa bằng khóa thô thay vì mật khẩu cần dùng chế độ Khóa & IV.

Công cụ liên quan