- Trang chủ
- Mã hóa
- Mã hóa / Giải mã
- Blowfish
Mã hóa và giải mã Blowfish
Mã hóa và giải mã văn bản bằng Blowfish, với độ dài khóa tùy chọn.
Blowfish đã 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ố đó.
Lựa chọn thông dụng với OpenSSL. Cần IV; đệm cho đủ khối.
openssl enc -bf-cbc -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.
Blowfish là mã khối do Bruce Schneier công bố năm 1993, với khối 8 byte và khóa dài bất kỳ từ 32 đến 448 bit. Nó từng là lựa chọn thay thế miễn phí phổ biến cho DES và vẫn xuất hiện trong các ứng dụng, định dạng tệp và tệp cấu hình cũ. Trang này mã hóa và giải mã văn bản bằng Blowfish, mặc định ở chế độ CBC, hoặc ECB, CFB, OFB, CTR, với mọi độ dài khóa theo bước 8 bit — mặc định 128 bit, đúng độ dài khóa của bf-cbc trong OpenSSL — dùng mật khẩu theo định dạng openssl enc -pbkdf2 hoặc khóa và IV hex của riêng bạn. 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 nên 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í, không cần đăng ký.
Cách mã hóa hoặc giải mã văn bản bằng Blowfish
- Chọn Mã hóa hoặc Giải mã. Gõ văn bản cần mã hóa, hoặc dán văn bản Base64 hay hex cần giải mã — định dạng được nhận diện tự động.
- Nhập mật khẩu, hoặc chuyển sang Khóa & IV (hex) rồi nhập khóa và IV 16 chữ số (ECB không có IV). Khóa được dán vào sẽ tự đặt độ dài khóa.
- Chọn độ dài khóa (128 bit, trừ khi dữ liệu được tạo bằng độ dài khác) và chế độ, thường là CBC hoặc ECB. Chỉ bật Không đệm nếu dữ liệu được mã hóa mà không có đệm PKCS#7.
- 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
- Độ dài khóa bất kỳ từ 32 đến 448 bit theo bước 8 bit, chọn nhanh 64, 128, 256 và 448
- Chế độ CBC, ECB, CFB, OFB và CTR; đệm PKCS#7 hoặc không đệm
- Chế độ mật khẩu theo định dạng openssl enc -pbkdf2; mặc định 128 bit đúng như bf-cbc của OpenSSL
- Chế độ Khóa & IV: khóa hex từ 8 đến 112 chữ số và IV 16 chữ số
- Lệnh openssl cho khóa 128 bit ở mọi chế độ trừ CTR, kèm legacy provider của OpenSSL 3
- Base64 hoặc hex cho đầu vào và đầu ra; sao chép, tải xuống hoặc Hoán đổi kết quả
Có riêng tư không?
Có. Blowfish chạy bằng WebAssembly ngay trong trình duyệt. Văn bản, mật khẩu và khóa của bạn không bao giờ bị tải lên hay lưu lại; trang chỉ giữ chúng khi đang mở.
Câu hỏi thường gặp
Blowfish có còn an toàn không?
Không, với dữ liệu mới. Chưa có tấn công thực tế nào phá được bản thân Blowfish, nhưng khối 8 byte 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à chính người thiết kế đã khuyên dùng các thuật toán mới hơn. Hãy dùng nó để đọc dữ liệu hiện có; với dữ liệu mới, hãy dùng AES hoặc ChaCha20.
Có thể giải mã bằng OpenSSL không?
Được, với khóa 128 bit mặc định: echo 'U2FsdGVkX1…' | openssl enc -d -bf-cbc -pbkdf2 -iter 10000 -a -A -provider legacy -provider default. -bf-ecb, -bf-cfb và -bf-ofb dùng cho các chế độ còn lại, và ở chế độ Khóa & IV hãy dùng -K <32 chữ số hex> -iv <16 chữ số hex> thay cho -pbkdf2 -iter. OpenSSL không có Blowfish CTR, và openssl enc luôn dùng khóa Blowfish 128 bit, nên không đọc được các độ dài khóa khác.
Nên chọn độ dài khóa nào?
Độ dài đã dùng để tạo dữ liệu — 128 bit nếu bạn không biết, vì đó là độ dài OpenSSL dùng. Ở chế độ mật khẩu, trang tạo khóa có độ dài đã chọn từ mật khẩu, nên độ dài khác sẽ cho ra khóa khác. Ở chế độ Khóa & IV, độ dài của chính khóa hex mới là điều quyết định: dán khóa vào và độ dài khóa sẽ tự điều chỉnh theo.
Blowfish có giống bcrypt không?
Không. bcrypt là hàm băm mật khẩu xây dựng trên phần thiết lập khóa của Blowfish, và mã hash thì không thể giải mã. Trang này là mã hóa Blowfish, có thể đảo ngược bằng mật khẩu hoặc khóa. Để băm hoặc kiểm tra mật khẩu, hãy dùng công cụ Bcrypt.