Toolonit
  1. หน้าแรก
  2. เข้ารหัสลับ
  3. แฮช Argon2

สร้างและตรวจสอบแฮช Argon2

แฮชและตรวจสอบรหัสผ่านด้วย Argon2id มาตรฐานการแฮชรหัสผ่านยุคใหม่

แฮชรหัสผ่าน

พิมพ์รหัสผ่าน แล้วแฮชจะแสดงที่นี่

พารามิเตอร์

ชนิด
ค่าที่ตั้งไว้ล่วงหน้า
หน่วยความจำ

m=19456 ในแฮช (KiB)

จำนวนรอบ
ระดับขนาน

จำนวนช่องทางของหน่วยความจำ ที่นี่จะทำงานทีละช่องทาง ส่วนเซิร์ฟเวอร์อาจทำงานพร้อมกัน ค่านี้มีผลต่อแฮช จึงต้องตั้งให้ตรงกับเซิร์ฟเวอร์

ความยาวแฮช
Salt

สุ่มใหม่ 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

  1. พิมพ์รหัสผ่าน แฮชจะแสดงขึ้นขณะพิมพ์ พร้อมเวลาที่ใช้บนอุปกรณ์ของคุณ
  2. เลือกค่าที่ตั้งไว้ล่วงหน้า หรือตั้งหน่วยความจำ จำนวนรอบ และระดับขนานให้ตรงกับเซิร์ฟเวอร์ของคุณ
  3. คัดลอกสตริง PHC หรือแฮชดิบและ salt แบบ hex
  4. หากจะตรวจแฮชที่เก็บไว้ ให้วางแฮชพร้อมรหัสผ่านในส่วน “ตรวจรหัสผ่านกับแฮช” แล้วคุณจะเห็นผล “ตรงกัน” หรือ “ไม่ตรงกัน”

ความสามารถ

  • 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) จะสร้างหรือตรวจที่นี่ไม่ได้

เครื่องมือที่เกี่ยวข้อง