UTILS.
100% trong trình duyệt
🔐

Trình tạo & xác minh băm Bcrypt

Tạo băm mật khẩu bcrypt với cost factor tùy chọn, hoặc xác minh mật khẩu văn bản thuần so với một băm $2b$ hiện có. Chạy hoàn toàn trong trình duyệt của bạn.

Mật khẩu được băm 100% trong trình duyệt của bạn — không có gì được tải lên.

— kết quả hiển thị ở đây —

Về công cụ này

Trình tạo & xác minh băm Bcrypt tạo và kiểm tra băm mật khẩu bcrypt mà không bao giờ gửi mật khẩu của bạn đến máy chủ. Bcrypt, do Provos và Mazières thiết kế năm 1999, bọc lịch trình khóa Eksblowfish trong một hệ số công việc thích ứng: tham số cost đặt 2^cost vòng thiết lập khóa, nên tăng cost làm mỗi lần đoán chậm theo cấp số nhân đối với kẻ tấn công trong khi vẫn rẻ cho một lần đăng nhập hợp pháp duy nhất. Chế độ tạo đọc 16 byte salt ngẫu nhiên từ crypto.getRandomValues của trình duyệt, chạy thiết lập Eksblowfish ở cost bạn chọn, mã hóa hằng số 192-bit "OrpheanBeholderScryDoubt" 64 lần, và phát ra chuỗi Modular Crypt Format chuẩn $2b$NN$ + salt base64 22-ký-tự + digest base64 31-ký-tự.

Thuật toán chạy dưới dạng một bản dựng WebAssembly không-eval của bcrypt được tải cục bộ, nên không có gì được tải lên và công cụ hoạt động ngoại tuyến sau khi đã tải. Bcrypt chỉ xét 72 byte đầu tiên của mật khẩu — công cụ cảnh báo bạn khi đầu vào vượt quá giới hạn đó để bạn không bao giờ bất ngờ vì bị cắt cụt âm thầm. Cost factor có thể chọn từ 4 đến 16 (mặc định 10); mỗi bước gấp đôi công việc, nên 12 chậm gấp bốn lần 10.

Chế độ xác minh phân tích tiền tố $2b$/$2a$/$2y$, cost hai chữ số, và salt nhúng ra khỏi một băm hiện có, tính lại digest với mật khẩu ứng viên, và báo cáo khớp hoặc không khớp. Vì salt và cost đi bên trong chính chuỗi băm, bạn chỉ cần mật khẩu và băm được lưu để kiểm tra một lần đăng nhập. Mọi thứ được tính trong trang — mật khẩu được băm 100% trong trình duyệt của bạn và không có gì được tải lên.

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

Tôi nên chọn cost factor nào?
Cost đặt 2^cost vòng thiết lập khóa. 10 (mặc định) là mức cơ bản phổ biến; 12 chậm gấp bốn lần và là lựa chọn hiện đại tốt cho đăng nhập tương tác. Cost cao hơn chống brute force tốt hơn nhưng mất nhiều thời gian tính toán hơn, nên hãy cân bằng bảo mật với độ trễ mà mỗi lần đăng nhập có thể chịu được.
Vì sao mật khẩu dài của tôi bị cắt cụt?
Bcrypt chỉ băm 72 byte đầu tiên của đầu vào theo thiết kế — các byte sau đó bị bỏ qua. Công cụ cảnh báo bạn khi một mật khẩu vượt quá 72 byte UTF-8 để bạn biết phần đuôi không đóng góp vào băm. Với các bí mật dài hơn, hãy băm trước bằng SHA-256 trước bcrypt.
Tôi có thể xác minh một băm bắt đầu bằng $2a$ hoặc $2y$ không?
Có. Chế độ xác minh chấp nhận các tiền tố $2a$, $2b$, và $2y$, vốn là các biến thể có thể hoán đổi của cùng thuật toán. Nó đọc cost và salt từ băm, tính lại với mật khẩu của bạn, và báo cáo liệu chúng có khớp không.
Mật khẩu của tôi có được 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 qua một bản dựng WebAssembly cục bộ của bcrypt. Mật khẩu, salt, và băm không bao giờ rời khỏi thiết bị của bạn, nên bạn có thể an toàn thử các thông tin đăng nhập thực ngoại tuyến.

Công cụ khác