Giải mã Triple DES (3DES)
Giải mã dữ liệu Triple DES (DES-EDE3) từ OpenSSL hoặc CryptoJS bằng mật khẩu, hoặc bản mã thô với khóa hex 16/24 byte và IV. Chạy cục bộ trong trình duyệt.
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-ede3-cbc -d -md md5 -a -A -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ã Triple DES là gì?
Giải mã bản mã 3DES, ở định dạng Base64 Salted__ của OpenSSL (từ openssl enc -des-ede3-cbc hoặc CryptoJS.TripleDES.encrypt) hoặc dạng byte thô với khóa và IV hex. Khóa sai được phát hiện qua việc kiểm tra đệm PKCS#7.
Cách sử dụng Giải mã Triple DES
- 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ô. - 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.
- Đặt cùng Chế độ và Đệm (padding) như bên gửi rồi dán Bản mã (Base64 hoặc Hex).
- 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ụ
U2FsdGVkX1+fAUPBci9K1t4/ytC3mL9Lj5o+GNDlCXc= (passphrase "secret", CBC)
Hello, World!
Được tạo bằng openssl enc -des-ede3-cbc -md md5 -a -k secret.
Khi nào nên dùng Giải mã Triple DES
Dùng để đọc dữ liệu từ hệ thống cũ, xác minh vector kiểm thử của đối tác hoặc gỡ lỗi tích hợp. Sau đó hãy cân nhắc chuyển dữ liệu sang AES.
Giải mã Triple DES hoạt động như thế nào
Với đầu vào Salted__: salt được đọc, khóa 24 byte và IV 8 byte được dẫn xuất lại từ mật khẩu (EVP_BytesToKey MD5 hoặc PBKDF2-SHA256) và dữ liệu được giải mã theo D(K1, E(K2, D(K3, block))) ở chế độ đã chọn. Đầu vào thô dùng trực tiếp khóa (16 hoặc 24 byte) và IV của bạn. Phần đệm của khối cuối được kiểm tra trước khi hiển thị văn bản.
Các Trường Hợp Sử Dụng Phổ Biến
- Giải mã giá trị 3DES từ bản xuất cơ sở dữ liệu cũ
- Kiểm tra một bản mã CryptoJS.TripleDES chứa gì
- Xác minh vector kiểm thử 3DES của hệ thống thanh toán
- Tìm xem dữ liệu là 3DES hay DES đơn
Lưu Ý Bảo Mật
Triple DES đã bị loại bỏ dần: NIST không cho phép dùng nó để mã hóa sau năm 2023 và khối 64 bit khiến các phiên dài dễ bị tấn công sinh nhật Sweet32. Chỉ dùng để tương thích.
Câu Hỏi Thường Gặp
Giải mã thất bại – tôi nên kiểm tra gì?
Mật khẩu, phương thức dẫn xuất khóa (MD5 hay PBKDF2), chế độ và – với khóa thô – khóa dài 16 hay 24 byte và IV có đúng không. Một số hệ thống dùng ECB không có IV.
Có đọc được kết quả OpenSSL tạo với thiết lập mặc định không?
OpenSSL 1.1+ không có -md md5 sẽ dẫn xuất khóa bằng SHA-256 (không PBKDF2), điều này không được hỗ trợ. Hãy dùng -md md5 hoặc -pbkdf2 khi mã hóa.
Có dùng được với khóa từ HSM không?
Nếu bạn biết byte khóa thô thì được: chọn Khóa thô + IV (hex) và nhập vào. Khóa nằm bên trong HSM không thể xuất ra trình duyệt.