Giải mã bằng mã dòng Rabbit

Giải mã dữ liệu mã dòng Rabbit từ CryptoJS (Base64 Salted__ với mật khẩu) hoặc bản mã thô với khóa hex 128 bit và IV 64 bit tùy chọn.

Rabbit là mã dòng ít phổ biến, không có bảo vệ toàn vẹn và ít thư viện hỗ trợ. Với ứng dụng mới, hãy ưu tiên AES-GCM.

Kết quả ở định dạng OpenSSL "Salted__" mã hóa Base64, khóa và IV dẫn xuất từ mật khẩu – cùng định dạng với CryptoJS.Rabbit.encrypt(text, passphrase). Bản thân OpenSSL không hỗ trợ Rabbit.

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ã Rabbit là gì?

Giải mã dữ liệu được mã hóa bằng mã dòng Rabbit, thường do CryptoJS.Rabbit.encrypt tạo ra. Dán chuỗi Base64 U2FsdGVkX1… cùng mật khẩu, hoặc bản mã thô cùng khóa và IV hex.

Cách sử dụng Giải mã Rabbit

  1. 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ô.
  2. Nhập mật khẩu hoặc khóa hex 16 byte (và IV 8 byte nếu có dùng).
  3. Dán Bản mã và bấm Giải mã.

Ví dụ

Đầu vào
U2FsdGVkX19PD1rihUsU44L3vJkKAmy580QhQw== (passphrase "secret")
Đầu ra
Hello Rabbit

Bản mã từ CryptoJS.Rabbit.encrypt("Hello Rabbit", "secret").

Khi nào nên dùng Giải mã Rabbit

Dùng để đọc hoặc gỡ lỗi dữ liệu từ ứng dụng dùng CryptoJS Rabbit. Công cụ không thể giải mã nếu không có đúng mật khẩu hoặc khóa.

Giải mã Rabbit hoạt động như thế nào

Salt được đọc từ header Salted__, khóa 16 byte và IV 8 byte được dẫn xuất lại (EVP_BytesToKey MD5 hoặc PBKDF2-SHA256), và dòng khóa Rabbit được XOR với bản mã. Ở chế độ thô, khóa và IV của bạn được dùng trực tiếp. Mã dòng không có phần đệm, nên khóa sai thể hiện qua kết quả UTF-8 không hợp lệ.

Các Trường Hợp Sử Dụng Phổ Biến

  • Giải mã giá trị mà ứng dụng web lưu bằng CryptoJS.Rabbit
  • Kiểm tra bản cài đặt Rabbit của bạn có khớp CryptoJS không
  • Khôi phục dữ liệu kiểm thử khi gỡ lỗi
  • Chuyển dữ liệu mã hóa Rabbit sang AES

Lưu Ý Bảo Mật

Rabbit chưa có cách phá thực tế nào được biết, nhưng hiếm được dùng, không có cơ chế bảo vệ toàn vẹn tích hợp và ít thư viện hỗ trợ. Hãy dùng AES-GCM cho hệ thống mới.

Câu Hỏi Thường Gặp

Vì sao tôi bị lỗi "UTF-8 không hợp lệ"?

Nhiều khả năng mật khẩu hoặc khóa sai; bản thân Rabbit không phát hiện được điều đó. Nếu dữ liệu gốc là nhị phân, hãy chuyển kết quả sang Hex.

Bản mã của tôi không có tiền tố U2FsdGVkX1.

Vậy là CryptoJS được gọi với khóa và IV tường minh. Chọn Khóa thô + IV (hex) và nhập chúng dạng hex.

Có hỗ trợ RabbitLegacy không?

Không, chỉ biến thể CryptoJS.Rabbit tiêu chuẩn.

Khám phá thêm danh mục