Hash/Mật mã
Scrypt Hash + Verify
Băm mật khẩu bằng scrypt (RFC 7914, KDF tốn nhiều bộ nhớ) với xác minh so với mã băm đã có.
Scrypt (RFC 7914) was one of the first memory-hard password-hashing algorithms: it deliberately requires a lot of RAM, not just CPU time, to make parallel brute-forcing on GPUs and ASICs harder.
How to use it
- Hash: enter a password and tune the parameters (N — memory cost, r — block size, p — parallelism) to get a hash.
- Verify: paste a password and an existing scrypt hash to check whether they match.
- Every hash uses a fresh random salt, so the same password produces a different hash each time.
Common uses
- Checking that a backend correctly hashes passwords with scrypt before storing them.
- Generating a test scrypt hash for fixtures or seed data during development.
- Comparing scrypt against bcrypt and Argon2 when choosing a hashing algorithm for a new project.
Things to keep in mind
The N parameter (memory cost) increases both required memory and compute time exponentially — tune it to your server's actual capacity.
Scrypt has been superseded by Argon2 (the official Password Hashing Competition winner) as the recommended choice for new systems, though scrypt itself still isn't considered unsafe.
Bài viết về công cụ này: Scrypt: vì sao thuật toán cần nhiều bộ nhớ đến vậy
Câu hỏi thường gặp
scrypt khác bcrypt hay PBKDF2 như thế nào?
Scrypt được thiết kế cố ý tốn bộ nhớ lẫn tốn CPU, khiến việc bẻ khóa bằng GPU hay phần cứng ASIC tùy chỉnh đắt đỏ hơn nhiều so với bcrypt hay PBKDF2, vốn chủ yếu chống lại brute-force dựa trên CPU.
Các tham số N, r và p kiểm soát điều gì?
N quy định chi phí CPU/bộ nhớ (phải là lũy thừa của hai), r quy định kích thước khối ảnh hưởng đến mức dùng bộ nhớ mỗi thao tác, và p quy định mức song song — tăng bất kỳ tham số nào cũng làm tăng chi phí tài nguyên cho cả sử dụng hợp pháp lẫn tấn công.
scrypt có còn là lựa chọn tốt so với Argon2 không?
Scrypt vẫn vững chắc và đã được kiểm chứng qua thời gian, nhưng Argon2 (người chiến thắng Password Hashing Competition) thường được khuyến nghị cho hệ thống mới vì cho phép kiểm soát chi tiết hơn về bộ nhớ và khả năng chống tấn công kênh bên.
Scrypt thực sự tiêu tốn bao nhiêu bộ nhớ?
Xấp xỉ 128 × N × r byte cho một lần tính toán. Với các tham số điển hình (N=16384, r=8), con số này vào khoảng 16 megabyte cho mỗi hash — không đáng kể đối với một lần đăng nhập, nhưng đáng kể khi có hàng nghìn lượt xác thực đồng thời trên máy chủ.
Scrypt còn được ứng dụng ở đâu ngoài việc băm mật khẩu?
Scrypt được biết đến như thuật toán proof-of-work trong một số loại tiền mã hóa (ví dụ Litecoin) — nó được chọn chính vì khả năng chống lại việc đào bằng thiết bị ASIC chuyên dụng, đặc trưng của Bitcoin với SHA-256.