UTILS.
100% trong trình duyệt
🛡️

Trình tạo & xác minh băm mật khẩu Argon2

Tính băm mật khẩu Argon2id/i/d với bộ nhớ, số lần lặp và độ song song cấu hình được, hoặc xác minh mật khẩu so với băm mã hóa PHC. Phía client.

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 mật khẩu Argon2 tính và kiểm tra băm Argon2 hoàn toàn trong trình duyệt của bạn. Argon2 thắng Cuộc thi Băm Mật khẩu 2015 và được chuẩn hóa trong RFC 9106; khác với bcrypt nó là memory-hard, nghĩa là chi phí của nó bị chi phối bởi việc dùng RAM, làm khó các dàn máy bẻ khóa GPU và ASIC. Chế độ tạo rút 16 byte salt ngẫu nhiên từ crypto.getRandomValues và chạy biến thể đã chọn với các tham số của bạn: t số lần lặp (chi phí thời gian), m bộ nhớ tính bằng KiB, p độ song song (lanes), và độ dài băm đầu ra tính bằng byte.

Ba biến thể được cung cấp. Argon2id (mặc định và lựa chọn RFC khuyến nghị) là một biến thể lai chống cả tấn công side-channel lẫn đánh đổi thời gian-bộ nhớ; Argon2i được tối ưu chống rò rỉ side-channel; Argon2d tối đa hóa khả năng chống bẻ khóa GPU nhưng không an toàn side-channel. Kết quả là một chuỗi PHC tự mô tả dạng $argon2id$v=19$m=65536,t=3,p=1$<base64 salt>$<base64 hash>, nên mọi tham số cần để xác minh đều đi bên trong băm. Các mặc định (t=3, m=65536 KiB = 64 MiB, p=1) tuân theo hồ sơ khuyến nghị thứ hai của RFC 9106.

Vì công việc chạy dưới dạng một bản dựng WebAssembly không-eval theo chính sách bảo mật nghiêm ngặt của trình duyệt, bộ nhớ được cấp phát trong trang: các giá trị m rất cao ngốn nhiều RAM và có thể chậm trên điện thoại, nên công cụ cảnh báo trên 256 MiB. Chế độ xác minh phân tích biến thể, phiên bản, m/t/p, salt, và digest từ một băm đã mã hóa, tính lại với mật khẩu ứng viên, và báo cáo khớp hoặc không khớp. 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 dùng biến thể Argon2 nào?
Argon2id là mặc định và khuyến nghị của RFC 9106 cho băm mật khẩu — nó kết hợp khả năng chống side-channel của Argon2i với khả năng chống bẻ khóa GPU của Argon2d. Chỉ dùng Argon2i nếu bạn đặc biệt cần truy cập bộ nhớ độc lập dữ liệu, và Argon2d chỉ trong bối cảnh không có rủi ro side-channel.
Các thiết lập bộ nhớ, số lần lặp và độ song song làm gì?
Bộ nhớ (m, tính bằng KiB) là lượng RAM mà băm lấp đầy — yếu tố chi phí chính. Số lần lặp (t) là số lượt đi qua bộ nhớ đó. Độ song song (p) là số lane được tính cùng lúc. m và t cao hơn nghĩa là băm mạnh hơn, chậm hơn; các mặc định là m=65536 (64 MiB), t=3, p=1.
Vì sao thiết lập bộ nhớ cao lại chậm hoặc không phản hồi?
Argon2 thực sự cấp phát bộ nhớ được yêu cầu trong trình duyệt của bạn, nên một giá trị như 1 GiB (1048576 KiB) có thể treo hoặc thất bại trên các thiết bị RAM thấp. Công cụ cảnh báo trên 256 MiB. Giảm m nếu việc tạo bị treo; các tham số được lưu trong băm dù thế nào.
Băm có chứa mọi thứ cần để xác minh nó không?
Có. Đầu ra mã hóa PHC nhúng biến thể, phiên bản, các tham số m/t/p, salt, và digest, nên việc xác minh chỉ cần mật khẩu và một chuỗi đó. Không có gì được gửi đi đâu — cả việc băm lẫn xác minh đều chạy cục bộ qua WebAssembly.

Công cụ khác