Giải mã RC4 (thuật toán cũ)
Giải mã bản mã RC4 (ARC4) bằng khóa hex thô hoặc mật khẩu tương thích OpenSSL (định dạng Salted__). Đầu vào Base64 hoặc hex, kết quả văn bản hoặc hex, hoàn toàn cục bộ.
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:
Giống OpenSSL, mật khẩu được chuyển thành khóa RC4 128 bit. CryptoJS.RC4 dùng mật khẩu sẽ tạo khóa 256 bit, nên không thể giải mã kết quả của nó tại đây.
openssl enc -rc4 -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ã RC4 là gì?
Giải mã dữ liệu mã hóa bằng mã dòng RC4, dạng bản mã thô với khóa hex hoặc định dạng Base64 Salted__ của OpenSSL với mật khẩu. Vì RC4 đối xứng, việc giải mã tạo lại cùng dòng khóa và XOR thêm lần nữa.
Cách sử dụng Giải mã RC4
- Chọn Nguồn khóa đã dùng khi mã hóa và nhập mật khẩu hoặc khóa hex.
- Dán Bản mã dạng Base64 hoặc Hex.
- Bấm Giải mã và đọc bản rõ (chuyển sang kết quả Hex với dữ liệu nhị phân).
Ví dụ
U2FsdGVkX18CT09IGrybf6B10S7HfLfYRy4mwTI= (passphrase "secret")
Hello, World!
Được tạo bằng openssl enc -rc4 -md md5 -a -k secret.
Khi nào nên dùng Giải mã RC4
Dùng để đọc dữ liệu RC4 cũ hoặc kiểm tra vector kiểm thử. Khóa sai sẽ âm thầm cho ra byte ngẫu nhiên, nên hãy kiểm tra kết quả có hợp lý không.
Giải mã RC4 hoạt động như thế nào
Khóa (thô, hoặc dẫn xuất từ mật khẩu và salt bằng EVP_BytesToKey MD5 / PBKDF2-SHA256 thành 16 byte như OpenSSL) khởi tạo trạng thái RC4, và dòng khóa được tạo ra đem XOR với bản mã. RC4 không có phần đệm, nên khóa sai không thể phát hiện trực tiếp; công cụ báo kết quả không phải UTF-8 hợp lệ và cho phép xem dạng hex.
Các Trường Hợp Sử Dụng Phổ Biến
- Giải mã giá trị từ phần mềm cũ dùng ARC4
- Kiểm tra vector kiểm thử dòng khóa của RFC 6229
- Đọc dữ liệu do
openssl enc -rc4tạo ra - Dạy tính chất XOR của mã dòng
Lưu Ý Bảo Mật
RC4 đã bị phá: dòng khóa của nó có độ lệch thống kê mạnh và RFC 7465 cấm dùng nó trong TLS. Nó không bảo vệ tính toàn vẹn. Chỉ dùng cho dữ liệu cũ.
Câu Hỏi Thường Gặp
Vì sao kết quả không phải văn bản đọc được?
Hoặc khóa sai (RC4 không thể biết), hoặc bản rõ là dữ liệu nhị phân. Hãy chuyển định dạng kết quả sang Hex để xem các byte.
Giải mã RC4 có khác mã hóa không?
Không, đó là cùng một phép XOR; trang này chỉ đặt nhãn các trường cho việc giải mã và chấp nhận đầu vào Base64 hoặc hex.
Có hỗ trợ RC4-drop không?
Không, chỉ RC4 thuần như OpenSSL, CryptoJS (khóa thô) và hầu hết thư viện sử dụng.