- หน้าแรก
- เข้ารหัสลับ
- แฮช Argon2
สร้างและตรวจสอบแฮช Argon2
แฮชและตรวจสอบรหัสผ่านด้วย Argon2id มาตรฐานการแฮชรหัสผ่านยุคใหม่
แฮชรหัสผ่าน
พิมพ์รหัสผ่าน แล้วแฮชจะแสดงที่นี่
พารามิเตอร์
m=19456 ในแฮช (KiB)
จำนวนช่องทางของหน่วยความจำ ที่นี่จะทำงานทีละช่องทาง ส่วนเซิร์ฟเวอร์อาจทำงานพร้อมกัน ค่านี้มีผลต่อแฮช จึงต้องตั้งให้ตรงกับเซิร์ฟเวอร์
สุ่มใหม่ 16 ไบต์สำหรับทุกแฮช
ตรวจรหัสผ่านกับแฮช
สตริง PHC: $argon2id$, $argon2i$ หรือ $argon2d$ พารามิเตอร์จะอ่านจากสตริงนี้
ใส่รหัสผ่านและแฮชเพื่อตรวจสอบ
Argon2 ชนะการแข่งขัน Password Hashing Competition และเป็นมาตรฐานใน RFC 9106 ถูกออกแบบให้ช้าและใช้หน่วยความจำมากโดยตั้งใจ ทำให้การเดารหัสผ่านด้วย GPU มีต้นทุนสูง หน้านี้สร้างแฮช Argon2 ตามพารามิเตอร์ที่คุณเลือก ออกมาเป็นสตริง PHC ที่ไลบรารีรหัสผ่านใช้เก็บ ($argon2id$v=19$m=…,t=…,p=…$salt$hash) และเป็น hex ดิบ และตรวจรหัสผ่านกับสตริง PHC ที่มีอยู่ได้ ทำงานในเบราว์เซอร์ รหัสผ่านจึงไม่ออกจากอุปกรณ์ของคุณ ใช้ฟรีและไม่ต้องสมัครสมาชิก
วิธีสร้างและตรวจสอบแฮช Argon2
- พิมพ์รหัสผ่าน แฮชจะแสดงขึ้นขณะพิมพ์ พร้อมเวลาที่ใช้บนอุปกรณ์ของคุณ
- เลือกค่าที่ตั้งไว้ล่วงหน้า หรือตั้งหน่วยความจำ จำนวนรอบ และระดับขนานให้ตรงกับเซิร์ฟเวอร์ของคุณ
- คัดลอกสตริง PHC หรือแฮชดิบและ salt แบบ hex
- หากจะตรวจแฮชที่เก็บไว้ ให้วางแฮชพร้อมรหัสผ่านในส่วน “ตรวจรหัสผ่านกับแฮช” แล้วคุณจะเห็นผล “ตรงกัน” หรือ “ไม่ตรงกัน”
ความสามารถ
- Argon2id (ค่าเริ่มต้น), Argon2i และ Argon2d เวอร์ชัน 19
- ค่าที่ตั้งไว้ล่วงหน้า: ขั้นต่ำของ OWASP (19 MiB, t=2, p=1), RFC 9106 แบบหน่วยความจำต่ำ (64 MiB, t=3, p=4) และแบบสูง (256 MiB, t=3, p=4)
- หน่วยความจำ 1 MiB–1 GiB จำนวนรอบ 1–16 ระดับขนาน 1–16 ความยาวแฮช 4–128 ไบต์
- salt สุ่ม 16 ไบต์ หรือกำหนดเองเป็นข้อความ hex หรือ Base64 (8–1024 ไบต์)
- สตริง PHC พร้อมแฮชดิบและ salt แบบ hex แต่ละค่ามีปุ่ม “คัดลอก”
- ตรวจสอบสตริง $argon2id$, $argon2i$ และ $argon2d$ (v=19 หรือ v=16) โดยอ่านพารามิเตอร์จากแฮช
เป็นส่วนตัวหรือไม่
ใช่ Argon2 ทำงานในเบราว์เซอร์ของคุณด้วย WebAssembly ใน worker เบื้องหลัง และ salt มาจากตัวสุ่มที่ปลอดภัยของเบราว์เซอร์ รหัสผ่านไม่เคยถูกอัปโหลดหรือเก็บไว้
คำถามที่พบบ่อย
ควรใช้ Argon2id, Argon2i หรือ Argon2d
ใช้ Argon2id ทั้ง RFC 9106 และ OWASP แนะนำสำหรับรหัสผ่าน เพราะรวมความทนต่อการโจมตีแบบ side-channel ของ Argon2i เข้ากับความทนต่อการเจาะด้วย GPU ของ Argon2d เลือกแบบอื่นเฉพาะเมื่อต้องให้ตรงกับระบบที่มีอยู่
ควรตั้งหน่วยความจำ จำนวนรอบ และระดับขนานเท่าไร
ค่าขั้นต่ำของ OWASP สำหรับ Argon2id คือ 19 MiB, 2 รอบ, 1 lane ส่วน RFC 9106 แนะนำ 64 MiB, 3 รอบ, 4 lane เมื่อหน่วยความจำจำกัด หน่วยความจำที่มากขึ้นคือการป้องกันที่แข็งแรงกว่า ให้เพิ่มจนแฮชหนึ่งครั้งใช้เวลานานเท่าที่เซิร์ฟเวอร์รับไหวต่อการเข้าสู่ระบบแต่ละครั้ง
Argon2 หรือ bcrypt ดีกว่า
Argon2id สำหรับระบบใหม่ ทั้งคู่ช้าโดยตั้งใจ แต่ Argon2 ยังต้องใช้หน่วยความจำมาก ซึ่งทำให้การเจาะด้วย GPU มีต้นทุนสูง และไม่มีขีดจำกัดรหัสผ่าน 72 ไบต์ bcrypt เก่ากว่าและรองรับแทบทุกที่ และยังเป็นตัวเลือกที่สมเหตุสมผลในที่ที่ไม่มี Argon2
สตริง PHC $argon2id$ คืออะไร
คือวิธีที่การใช้งานอ้างอิงของ Argon2 เก็บแฮช ได้แก่ variant, เวอร์ชัน (v=19), หน่วยความจำเป็น KiB (m), จำนวนรอบ (t), จำนวน lane (p) ตามด้วย salt และแฮชในรูป Base64 แบบไม่มี padding สตริงที่สร้างที่นี่ตรงกับที่ไลบรารีอ้างอิง (libargon2) เขียนสำหรับอินพุตเดียวกันทุกตัวอักษร และ crypto_pwhash_str_verify ของ libsodium ยอมรับ (Argon2id และ Argon2i ที่แฮชยาว 16 ไบต์ขึ้นไป)
ทำไมใช้หน่วยความจำเกิน 1 GiB ไม่ได้
เพราะแฮชทำงานภายในแท็บเบราว์เซอร์ ซึ่งหน่วยความจำของ WebAssembly มีจำกัด การจองครั้งเดียวไปถึง 2 GiB ไม่ได้ และโทรศัพท์มักปฏิเสธที่น้อยกว่านั้นมาก หน้านี้จึงหยุดที่ 1 GiB และแฮชที่ต้องใช้มากกว่านั้น (เช่นตัวเลือก 2 GiB ของ RFC 9106) จะสร้างหรือตรวจที่นี่ไม่ได้