Mã hóa và giải mã RC4
Mã hóa hoặc giải mã dữ liệu cũ bằng mã dòng RC4.
RC4 đã 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
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.
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ố đó.
openssl enc -rc4 -pbkdf2 -iter 10000 -a -A -provider legacy -provider defaultOpenSSL 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.
RC4, còn gọi là ARC4 hay ARCFOUR, là mã dòng từng được dùng trong SSL/TLS và Wi-Fi WEP. Nó không có khối, không có chế độ và không có IV: nó biến khóa thành một dòng byte rồi XOR với văn bản, nên bản mã dài đúng bằng văn bản. Trang này mã hóa và giải mã văn bản bằng RC4 với mật khẩu theo định dạng openssl enc -pbkdf2 hoặc khóa hex từ 40 đến 2048 bit (mặc định 128), để bạn đọc dữ liệu từ hệ thống cũ hoặc tạo dữ liệu cho chúng. RC4 đã bị phá; với dữ liệu mới, hãy dùng AES hoặc ChaCha20. Mọi thứ chạy trong trình duyệt: văn bản 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 RC4
- 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.
- Nhập mật khẩu, hoặc chuyển sang Khóa & IV (hex) rồi nhập khóa; RC4 không có IV nên chỉ có ô khóa.
- Chọn độ dài khóa đã dùng để tạo dữ liệu: 128 bit nếu bạn không biết rõ, 40 bit cho RC4 loại xuất khẩu (export-grade).
- Sao chép hoặc tải xuống kết quả, hoặc bấm Hoán đổi để đưa kết quả vào ô nhập và đổi chiều.
Tính năng
- RC4 với độ dài khóa bất kỳ từ 40 đến 2048 bit theo bước 8 bit; chọn nhanh 40, 128, 256 và 2048
- Không IV, không đệm: bản mã dài đúng bằng văn bản
- Chế độ mật khẩu theo định dạng openssl enc -pbkdf2, kèm lệnh rc4 hoặc rc4-40 cho legacy provider của OpenSSL
- Chế độ Khóa & IV (hex) chỉ với một khóa, tự nhập hoặc tạo ngẫu nhiên
- 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
Có riêng tư không?
Có. RC4 chạy bằng WebAssembly ngay 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.
Câu hỏi thường gặp
RC4 có an toàn không?
Không. Dòng khóa của nó có những sai lệch thống kê cho phép kẻ tấn công khôi phục dữ liệu, vì thế RFC 7465 đã cấm RC4 trong TLS từ năm 2015. Chỉ dùng nó để đọc dữ liệu RC4 hiện có, và mã hóa lại mọi thứ bạn cần giữ bằng AES hoặc ChaCha20.
ARC4 có giống RC4 không?
Có. RC4 do Ron Rivest thiết kế năm 1987 và được giữ làm bí mật thương mại; sau khi thuật toán bị rò rỉ năm 1994, người khác triển khai nó dưới tên ARC4 hoặc ARCFOUR (“alleged RC4” – được cho là RC4) vì tên RC4 là nhãn hiệu đã đăng ký. Bản mã hoàn toàn giống nhau.
Có thể giải mã bằng OpenSSL không?
Được, với khóa 128 bit và 40 bit: echo 'U2FsdGVkX1…' | openssl enc -d -rc4 -pbkdf2 -iter 10000 -a -A -provider legacy -provider default, hoặc -rc4-40 cho khóa 40 bit. Ở chế độ Khóa & IV, dùng -K <khóa hex> thay cho -pbkdf2 -iter, không có -iv. openssl enc không có các độ dài khóa RC4 khác.
Dùng lại khóa RC4 có an toàn không?
Không. Cùng một khóa luôn cho cùng một dòng khóa, nên XOR hai kết quả tạo bằng một khóa sẽ triệt tiêu dòng khóa và để lộ phép XOR của hai văn bản. Ở chế độ mật khẩu, điều này không xảy ra: salt ngẫu nhiên cho mỗi tin nhắn một khóa riêng, và kết quả mỗi lần đều khác. Ở chế độ Khóa & IV, hãy dùng khóa mới cho mỗi tin nhắn.
Vì sao tôi nhận được các byte không đọc được thay vì thông báo lỗi?
Vì RC4 không phân biệt được khóa sai với khóa đúng: giải mã với mật khẩu, số vòng lặp hoặc độ dài khóa sai vẫn cho ra các byte, chỉ là byte ngẫu nhiên, và trang hiển thị chúng dạng hex. Hãy kiểm tra xem mọi thiết lập có khớp với lúc mã hóa không.