Trình tạo và xác minh hash Bcrypt
Tạo hash mật khẩu bcrypt từ văn bản thuần với hệ số chi phí bạn chọn, hoặc xác minh một mật khẩu với một hash bcrypt đã có, hoàn toàn trong trình duyệt của bạn.
Trình tạo và xác minh hash Bcrypt — Chuyển đổi giữa Tạo hash và Xác minh để biến một mật khẩu văn bản thuần thành một hash bcrypt có muối, hoặc kiểm tra xem một mật khẩu có khớp với một hash đã có hay không. Chọn hệ số chi phí để điều chỉnh mức độ chậm và khả năng chống dò quét vét cạn của hash, và để công cụ tạo một muối ngẫu nhiên mới cho mỗi hash. Mọi thứ chạy cục bộ thông qua bản dựng WebAssembly của bcrypt, nên mật khẩu và hash không bao giờ rời khỏi trình duyệt của bạn.
Trình tạo và xác minh hash Bcrypt là gì?
Trình tạo và xác minh hash Bcrypt là một công cụ miễn phí chạy trong trình duyệt cho hàm băm mật khẩu bcrypt, chính là thuật toán mà vô số framework web dùng để lưu mật khẩu an toàn. Lập trình viên backend, kỹ sư bảo mật và những người đang học về xác thực dùng nó để tạo một hash $2b$ mẫu nhằm nạp vào cơ sở dữ liệu, để xác nhận rằng một hash đã lưu thực sự khớp với một mật khẩu đã biết, hoặc để xem hệ số chi phí thay đổi khối lượng công việc như thế nào. Ở chế độ Tạo hash, bạn nhập một mật khẩu và một hệ số chi phí (4-31); một muối ngẫu nhiên 16 byte được tạo cho bạn và kết quả là chuỗi bcrypt được mã hóa chuẩn, mang theo cùng nhau phiên bản thuật toán, chi phí, muối và bản tóm tắt. Ở chế độ Xác minh, bạn dán một mật khẩu và một hash bcrypt đã có, nhấn Xác minh, và công cụ cho bạn biết chúng có khớp hay không. Vì bcrypt cố ý được làm cho chậm, một hệ số chi phí cao có thể mất một khoảng thời gian thấy rõ để tính.
Cách sử dụng Trình tạo và xác minh hash Bcrypt
- Chọn Tạo hash để tạo một hash mới, hoặc Xác minh để kiểm tra một mật khẩu với một hash đã có.
- Ở chế độ Tạo hash, gõ hoặc dán mật khẩu văn bản thuần mà bạn muốn bảo vệ.
- Đặt hệ số chi phí (10 là giá trị mặc định phổ biến; càng cao thì càng chậm và càng mạnh).
- Nhấn Tạo hash và sao chép chuỗi bcrypt thu được ngay khi nó xuất hiện.
- Ở chế độ Xác minh, nhập mật khẩu và dán hash bcrypt, sau đó nhấn Xác minh để xem Khớp hoặc Không khớp.
Ví dụ
Băm một mật khẩu với chi phí mặc định
Đầu vào
mật khẩu: correct horse battery staple, chi phí: 10
Đầu ra
$2b$10$... (một hash bcrypt 60 ký tự; muối là ngẫu nhiên nên mỗi lần lại khác)
Xác minh một mật khẩu với một hash đã lưu
Đầu vào
mật khẩu: hunter2, hash: $2b$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy
Đầu ra
Khớp
Mật khẩu sai sẽ không qua được xác minh
Đầu vào
mật khẩu: wrongpass, hash: $2b$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy
Đầu ra
Không khớp
Câu hỏi thường gặp
- Mật khẩu hoặc hash của tôi có bị gửi đi đâu không?
- Không. Việc băm và xác minh chạy hoàn toàn trong trình duyệt của bạn bằng một bản dựng WebAssembly của bcrypt. Không có gì bạn nhập bị tải lên hay lưu trên bất kỳ máy chủ nào, nên công cụ vẫn hoạt động khi ngoại tuyến và mật khẩu của bạn không bao giờ rời khỏi trang.
- Tôi nên dùng hệ số chi phí nào?
- Hệ số chi phí quyết định bcrypt thực hiện bao nhiêu vòng; mỗi lần tăng một đơn vị làm khối lượng công việc tăng gần gấp đôi. Giá trị 10-12 là phổ biến cho ứng dụng web. Giá trị cao hơn chống dò quét vét cạn tốt hơn nhưng tốn nhiều thời gian tính hơn, nên những con số rất cao có thể khiến trình duyệt đứng trong giây lát.
- Vì sao hash thay đổi mỗi lần đối với cùng một mật khẩu?
- Một muối ngẫu nhiên 16 byte mới được tạo cho mỗi hash, và muối được nhúng vào kết quả. Các muối khác nhau tạo ra các hash khác nhau cho cùng một mật khẩu, và đó chính là điều làm cho bcrypt an toàn. Việc xác minh vẫn thành công vì muối được đọc lại từ hash đã lưu.
- Vì sao xác minh báo hash của tôi không hợp lệ?
- Xác minh yêu cầu một hash bcrypt đầy đủ ở dạng mã hóa chuẩn, thường bắt đầu bằng $2a$, $2b$ hoặc $2y$ tiếp theo là chi phí và 53 ký tự muối cộng bản tóm tắt. Nếu một phần của chuỗi bị thiếu hoặc bị thay đổi, công cụ không đọc được muối và báo lỗi.
- Tôi có thể dùng hash này trực tiếp trong ứng dụng của mình không?
- Có. Đầu ra là một chuỗi bcrypt được mã hóa chuẩn tương thích với các thư viện bcrypt phổ biến, nên bạn có thể lưu nó và xác minh với nó trên máy chủ của mình. Với các hệ thống thực, hãy tạo hash tại nơi nhập mật khẩu thay vì sao chép nó qua các công cụ khác.
Công cụ liên quan
Mã hóa văn bản AES (AES-GCM + PBKDF2)
Mã hóa và giải mã văn bản bằng AES-256-GCM với khóa được suy ra từ cụm mật khẩu (PBKDF2 SHA-256, muối ngẫu nhiên), hoàn toàn trong trình duyệt của bạn và không tải lên gì cả.
Hash Argon2 & scrypt
Băm một mật khẩu bằng Argon2id hoặc scrypt và xác minh một hash Argon2 với một mật khẩu, hoàn toàn trong trình duyệt của bạn.
Trình tạo mnemonic BIP39
Tạo một cụm từ khôi phục BIP39 ngẫu nhiên gồm 12 đến 24 từ ở nhiều ngôn ngữ, hoặc chuyển một mnemonic hiện có trở lại entropy thô của nó, hoàn toàn trong trình duyệt của bạn.
Trình tạo CSR và chứng chỉ tự ký
Tạo khóa riêng RSA hoặc ECDSA cùng với yêu cầu ký chứng chỉ hoặc chứng chỉ X.509 tự ký, tất cả ngay trong trình duyệt của bạn.