Toolonit
  1. Trang chủ
  2. Mã hóa
  3. Bcrypt

Tạo và kiểm tra mã hash bcrypt

Băm mật khẩu bằng bcrypt và kiểm tra mật khẩu có khớp với mã hash hay không.

Băm mật khẩu

0/72 byte

Cost

Mỗi bậc tăng lên làm thời gian gấp đôi. 10–12 là mức thường dùng cho đăng nhập. Mã hash ghi lại cost của nó, nên khi kiểm tra không cần thiết lập gì.

Gõ mật khẩu: mã hash của nó sẽ hiện ở đây.

Kiểm tra mật khẩu với mã hash

$2a$, $2b$ hoặc $2y$, 60 ký tự. Cost được đọc từ mã hash.

Nhập mật khẩu và mã hash để kiểm tra.

Bcrypt là hàm băm mật khẩu chậm: máy chủ lưu mã hash bcrypt thay vì mật khẩu và kiểm tra lần đăng nhập bằng cách băm những gì người dùng gõ. Mỗi mã hash mang theo salt ngẫu nhiên và mức cost riêng, nên cùng một mật khẩu cho ra mã hash khác nhau mỗi lần và mã nào cũng xác minh được. Dùng trang này để tạo mã hash cho tệp cấu hình hoặc tài khoản thử nghiệm, hoặc để xem một mật khẩu có khớp với mã hash đã lưu hay không. Việc băm chạy trong trình duyệt nên mật khẩu không bao giờ rời khỏi thiết bị của bạn; công cụ miễn phí và không cần đăng ký.

Cách tạo và kiểm tra mã hash bcrypt

  1. Nhập mật khẩu. Mã hash hiện ra ngay khi bạn gõ, kèm thời gian tính trên thiết bị của bạn.
  2. Kéo thanh trượt Cost nếu hệ thống của bạn cần mức cost khác (mặc định là 10).
  3. Sao chép mã hash $2b$, hoặc bấm Kiểm tra bên dưới để xem nó được xác minh.
  4. Để kiểm tra một mã hash có sẵn, dán nó cùng mật khẩu vào mục Kiểm tra mật khẩu với mã hash: bạn sẽ thấy Khớp hoặc Không khớp.

Tính năng

  • Mã hash $2b$ với salt ngẫu nhiên 16 byte mới mỗi lần
  • Cost từ 4 đến 16 (mặc định 10), kèm thời gian tính trên thiết bị của bạn
  • Kiểm tra mật khẩu với mã hash $2a$, $2b$ và $2y$: Khớp hoặc Không khớp, kèm phiên bản và cost
  • Đếm số byte so với giới hạn 72 byte của bcrypt và cảnh báo những ký tự bị bỏ qua
  • Chạy trong worker nền nên cost cao cũng không làm treo trang: bấm Dừng, hoặc Băm lại để có salt mới
  • Nhận diện mã hash Argon2 và dẫn đến công cụ Argon2

Có riêng tư không?

Có. Việc băm và kiểm tra chạy trong trình duyệt bằng WebAssembly, trong một worker nền; mật khẩu không bao giờ bị tải lên hay lưu lại.

Câu hỏi thường gặp

Có giải mã được mã hash bcrypt không?

Không. Bcrypt là hàm băm một chiều: không có khóa nào biến nó trở lại thành mật khẩu. Cách duy nhất để tìm mật khẩu là đoán và băm từng lần đoán, việc mà bcrypt cố ý làm cho chậm. Để thử một mật khẩu bạn nghĩ là đúng, hãy dùng mục Kiểm tra mật khẩu với mã hash.

Vì sao cùng một mật khẩu mà mỗi lần lại ra mã hash khác?

Mỗi mã hash nhận một salt ngẫu nhiên 16 byte mới, được lưu ngay trong chuỗi hash. Khi kiểm tra, salt được đọc lại từ mã hash, nên mọi mã hash đó đều xác minh được với cùng một mật khẩu.

Nên chọn cost bao nhiêu?

Mỗi bậc tăng lên làm khối lượng tính toán gấp đôi. Mức 10 đến 12 là phổ biến cho đăng nhập; hãy chọn mức cost cao nhất mà máy chủ của bạn chịu được cho mỗi lần đăng nhập, thường khoảng một phần tư đến nửa giây. Thời gian hiển thị ở đây là trên thiết bị của chính bạn.

Vì sao bcrypt bỏ qua một phần mật khẩu dài?

Bcrypt chỉ đọc 72 byte đầu tiên của mật khẩu, tính theo UTF-8. Các chữ như tiếng Hàn chiếm 3 byte mỗi chữ, nên chỉ 24 chữ đã chạm giới hạn. Công cụ sẽ cảnh báo khi có ký tự bị bỏ qua; với cụm mật khẩu dài hơn, Argon2 không có giới hạn này.

$2a$, $2b$ và $2y$ khác nhau thế nào?

Các chữ cái này đánh dấu những lần sửa lỗi cũ trong một số bản triển khai cụ thể; với mật khẩu thông thường, chúng cho cùng một kết quả. Công cụ này tạo $2b$, tiền tố hiện hành của OpenBSD, và kiểm tra được cả ba. Mã hash tạo tại đây đã được xác minh bằng thư viện bcrypt của Python và bằng crypt() của Linux.

Công cụ liên quan