Argon2 Hash Generator: สร้างและตรวจสอบ Argon2id Password Hash ออนไลน์ฟรี
สร้างและตรวจสอบ Argon2id password hash ฟรีในเบราว์เซอร์ ปรับ memory, iterations และ parallelism ได้ ด้วยเครื่องมือ WebAssembly ที่ไม่ส่งข้อมูลไปเซิร์ฟเวอร์
Table of Contents
Argon2 Hash Generator: สร้างและตรวจสอบ Argon2id Password Hash ออนไลน์ฟรี
ถ้าคุณกำลังพัฒนาระบบที่ต้องเก็บรหัสผ่านของผู้ใช้ กฎเหล็กข้อแรกคือ ห้ามเก็บ password เป็น plain text เด็ดขาด สิ่งที่คุณต้องการคือ hash function ที่ช้าโดยตั้งใจและเป็น memory-hard ซึ่งวันนี้ Argon2id คืออัลกอริทึมที่วงการยอมรับร่วมกัน โดยชนะเลิศ Password Hashing Competition ปี 2015 และเป็นตัวเลือกแนะนำในแนวทางของ OWASP ก่อน bcrypt และ PBKDF2
Argon2 Hash Generator ของเราให้คุณสร้างและตรวจสอบ Argon2id hash ได้ฟรีในเบราว์เซอร์ ตัว hashing engine ถูก compile เป็น WebAssembly และรันบนเครื่องคุณทั้งหมด — password ของคุณไม่เคยออกจาก tab นั้นเลย คุณจะได้ควบคุม cost parameters ทั้งสามตัว (memory, time, parallelism) ได้ salt แบบสุ่ม 16 ไบต์ใหม่ทุกครั้ง และมีตัว verify ในตัวสำหรับเช็ก hash ที่มีอยู่กับ password ตัวเลือก
ไม่ว่าคุณจะ seed test fixtures, ตรวจสอบ hash ที่ export จาก database หรือเรียนรู้ว่ารูปแบบ PHC string ทำงานอย่างไร เครื่องมือนี้ให้ผลลัพธ์ที่ถูกต้องตามมาตรฐานในไม่กี่วินาที — ไม่ต้องติดตั้ง SDK, ไม่ต้องใช้ command line และไม่มีความเสี่ยงข้อมูลรั่วไหลออกนอกเครื่อง
ทำไมต้องใช้ Argon2 Hash Generator?
- Argon2id แท้ ไม่ใช่ตัวลอก — เครื่องมือรัน reference Argon2 algorithm ที่ compile เป็น WebAssembly ให้ผลลัพธ์เหมือนที่ backend library อย่าง argon2-cffi, node-argon2, libargon2 จะได้ ด้วย parameter และ salt เดียวกัน
- เป็นส่วนตัว 100% ฝั่ง client — password, salt และ hash ถูกคำนวณใน tab เบราว์เซอร์ของคุณ ไม่มีการส่งข้อมูล, log หรือเก็บบนเซิร์ฟเวอร์ใดๆ แม้ตัดอินเทอร์เน็ตก็ยังใช้งานได้
- ปรับ cost parameters ได้ — เลือก memory ตั้งแต่ 16 MiB ถึง 256 MiB, ตั้ง iterations 1–8 และเลือก parallelism 1, 2 หรือ 4 เพื่อ match กับ configuration ของ production หรือ hardware ที่คุณมี
- salt สุ่มใหม่ทุกครั้ง — ทุก hash ใช้ salt แบบสุ่มเข้ารหัสลับ 16 ไบต์จาก crypto.getRandomValues ทำให้ hash password เดิมสองครั้งได้ PHC string ต่างกันโดยสิ้นเชิง ซึ่งเป็นพฤติกรรมที่ถูกต้อง
- มีตัว verify ในตัว — โหมด verify จะคำนวณ hash ซ้ำจาก parameter ที่ฝังอยู่ใน PHC string แล้วบอกว่า password match หรือไม่ เป็นวิธีเช็ก database export ได้อย่างปลอดภัย
- ฟรีและไม่ต้องสมัครสมาชิก — ไม่มี account, ไม่มี API key, ไม่จำกัดการใช้งาน เปิดหน้าเว็บ, hash, copy, เสร็จ
ฟีเจอร์หลัก
| ฟีเจอร์ | รายละเอียด |
|---|---|
| อัลกอริทึม | Argon2id (ตัว hybrid ที่ทนทานต่อ side-channel attack) |
| รูปแบบผลลัพธ์ | PHC string มาตรฐาน: $argon2id$v=19$m=...,t=...,p=...$salt$hash |
| Memory cost | 16,384 – 262,144 KiB (16 MiB – 256 MiB) |
| Time cost | 1 – 8 iterations (ค่าเริ่มต้น 3) |
| Parallelism | 1, 2 หรือ 4 lanes |
| Salt | สุ่ม 16 ไบต์ต่อ hash, generate อัตโนมัติ |
| โหมด Verify | วาง Argon2id PHC hash แล้วทดสอบกับ password ได้ทันที |
| การรัน | WebAssembly ในเบราว์เซอร์ล้วนๆ — ใช้ offline ได้ |
บางฟีเจอร์ควรดูใกล้ขึ้นอีกนิด:
- ผลลัพธ์แบบ PHC string รวมอัลกอริทึม, version และ cost parameters ทั้งสามตัวไว้พร้อม salt และ digest แปลว่า hash ที่สร้างจากที่นี่อธิบายตัวเองได้ — เอาไปใส่ตาราง user แล้ว verifier ที่ทำตามมาตรฐานจะคำนวณซ้ำได้ในอนาคตโดยไม่ต้องตั้งค่าเพิ่ม
- Version 19 (0x13) คือ Argon2 เวอร์ชันสุดท้าย และเครื่องมือ emit ตัวนี้เสมอ คุณจะไม่ผสม hash รุ่นเก่าก่อนมาตรฐานเข้าไปในระบบใหม่โดยไม่ตั้งใจ
- แท็บ verify จะ parse hash ที่วาง, ดึง salt และ parameter ของมันเอง แล้วคำนวณใหม่ — ไม่ได้อิงค่าที่ตั้งไว้ในหน้า UI ปัจจุบัน ซึ่งสอดคล้องกับวิธีที่โค้ด verification จริงควรทำงาน
วิธีใช้งาน
- เปิด Argon2 Hash Generator ไม่ต้องสมัครหรือติดตั้งอะไร WASM module โหลดพร้อมหน้าเว็บ
- กรอก password ที่ต้องการ hash ลงในช่อง input ถ้าเป็นการสร้าง fixtures ให้ใช้ test string; ถ้าเป็น credential จริงให้ใช้ใน environment ที่เชื่อถือได้ (ย้ำอีกครั้ง — ข้อมูลไม่ออกจากเบราว์เซอร์ของคุณ)
- ปรับ parameter ตามต้องการ ค่าเริ่มต้น (memory 64 MiB, 3 iterations, parallelism 1) ตรงกับคำแนะนำพื้นฐานของ OWASP สำหรับ interactive login ถ้า production ของคุณตั้งค่าเข้มกว่า ให้ปรับตาม
- กดปุ่ม Generate Argon2id Hash แล้ว copy PHC string จากกล่องผลลัพธ์ ทุกครั้งที่กดจะใช้ salt สุ่มใหม่ ผลลัพธ์แต่ละครั้งจึงไม่ซ้ำกัน
- (ถ้าต้องการ) สลับไปแท็บ verify วาง PHC string พร้อม password ตัวเลือก แล้วยืนยันว่าได้ผล match นี่คือวิธีเร็วสุดในการพิสูจน์ว่า hash ใช้งานได้ครบวงจรก่อนเอาไปใช้ในแอปจริง
ทำความเข้าใจพารามิเตอร์ของ Argon2
จุดแข็งของ Argon2 คือการทำให้การ hash แพงในแบบที่ปรับได้ ต่างจาก SHA-256 ที่ GPU ยุคนี้คำนวณได้เป็นพันล้านครั้งต่อวินาที Argon2 ให้คุณตั้ง "ราคา" ของการเดารหัสผ่านหนึ่งครั้งทั้งในเชิงเวลาและเชิงฮาร์ดแวร์
Memory cost (m)
Parameter m กำหนดว่าการ hash หนึ่งครั้งจะใช้ RAM เท่าไร ความเป็น memory-hard คือจุดขายของ Argon2: GPU และ ASIC มีหน่วยคำนวณเยอะแต่มี memory ความเร็วสูงต่อ core จำกัด การบังคับให้แต่ละครั้งใช้ RAM สัก 64 MiB ทำให้เครื่อง crack แบบขนานอย่างมากมายทำงานได้แย่ลงอย่างชัดเจน เครื่องมือให้เลือก 16 ถึง 256 MiB โดย OWASP แนะนำขั้นต่ำอย่างน้อย 19 MiB (19,456 KiB) สำหรับ interactive authentication และถ้า server ไหว ยิ่ง memory มากยิ่งดี
Time cost (t)
Iterations กำหนดจำนวนรอบที่อัลกอริทึมวิ่งผ่าน memory ยิ่งรอบมาก ยิ่งใช้ CPU time ต่อ hash มากขึ้น — ทั้งกับ flow login ของคุณและการเดาของ attacker จุด sweet spot คือค่าสูงสุดที่ทำให้ login ใน production ยังเร็วพอ (โดยทั่วไปไม่เกิน ~250–500 ms) เครื่องมือเปิดช่วง 1–8 โดยมีค่าเริ่มต้นที่ 3 ซึ่งครอบคลุมการตั้งค่า production ทั่วไป
Parallelism (p)
Parameter p (lanes) แบ่งงานออกตาม thread โดยหลักส่งผลต่อการใช้ hardware หลาย core การเพิ่มค่านี้จะเปลี่ยนผลลัพธ์ แต่ในตัวมันเองเป็นหมุดทั้งสามตัวที่เกี่ยวกับความปลอดภัยน้อยสุด ควรตั้งให้ตรงกับค่าที่ backend library ของคุณใช้ เพื่อให้ hash verify ได้สม่ำเสมอ
Salt และรูปแบบ PHC string
ทุก hash ใช้ salt สุ่ม 16 ไบต์ใหม่เสมอ ซึ่งทำลาย rainbow table: attacker ไม่สามารถ precompute อะไรที่มีประโยชน์ได้เลยเมื่อ password เดิม hash ต่างกันทุกครั้ง ผลลัพธ์คือ PHC string format เช่น:
$argon2id$v=19$m=65536,t=3,p=1$U2FsdGVk...base64-salt$U2FsdGVk...base64-digest
อ่านจากซ้ายไปขวา: อัลกอริทึม (argon2id), version (v=19), cost parameters (m, t, p), salt และ digest — เข้ารหัส Base64 แบบไม่มี padding เพราะ parameter เดินทาง ใน string เอง คุณจึงเพิ่มค่า default ตามปีได้อย่างปลอดภัย และ hash เก่าก็ยัง verify ได้
ทำไมต้อง Argon2id ไม่ใช่ Argon2i หรือ Argon2d?
Argon2 มีสามตัวแปร Argon2d เน้นทน GPU cracking สูงสุดแต่ leak memory access pattern จึงเสี่ยง side-channel attack Argon2i ปลอดภัยจาก side-channel แต่อ่อนกว่าเมื่อเจอ GPU ส่วน Argon2id เป็นตัว hybrid: ใช้ pass แบบ Argon2i ก่อนแล้วตามด้วย Argon2d ได้ข้อดีทั้งสอง RFC 9106 แนะนำให้ Argon2id เป็น default และนั่นคือสิ่งที่เครื่องมือนี้สร้างให้
กรณีใช้งานจริง
Seed development และ test fixtures
ต้องการค่า $argon2id$... สมจริงสำหรับ database seed หรือ integration test? Generate hash ของ Test1234! แล้ววางลง fixture file ของคุณ auth flow จะได้ทดสอบ verification path เดียวกับ production — รวมถึงการ parse PHC string ด้วย
ตรวจสอบ hash ที่ export จาก production
กำลัง migrate จากระบบเก่าหรือ debug ปัญหา login ติดขัด? วาง PHC hash จากตาราง user ใน staging ลงแท็บ verify พร้อม password ของ staging ถ้าได้ match แปลว่า hash และ parameter ที่ฝังมายังสมบูรณ์; ถ้า mismatch ให้สงสัยข้อมูลเสียหายหรือ import ผิดการตั้งค่า
เรียนรู้และทำเอกสาร
กำลังเขียน onboarding docs หรือสอน security module? เครื่องมือนี้เป็น sandbox มีชีวิตสำหรับแสดงให้ผู้เรียนเห็นว่าการเปลี่ยน parameter ทำอะไร: เพิ่ม memory จาก 16 เป็น 256 MiB แล้วดูว่า hash ช้าลงแค่ไหน; แก้ password ตัวอักษรเดียวแล้วเห็น digest เปลี่ยนทั้งชุด
Cross-check implementation ฝั่ง backend
ถ้า backend ของคุณใช้ node-argon2, argon2-cffi หรือ PHP password_hash() กับ PASSWORD_ARGON2ID hash ที่สร้างจากที่นี่ด้วย parameter เดียวกันควร verify ได้ที่นั่น — และในทางกลับกันด้วย เป็นการเช็ก interoperability อย่างรวดเร็วก่อนตัดสินใจเลือก library
แนวทางปฏิบัติที่ดีที่สุด
- ตั้งค่าให้ตรงกับ production — ถ้า server hash ด้วย m=65536,t=3,p=1 ก็ให้ verify กับ hash ที่มี parameter ตรงกัน Argon2 เปลี่ยนผลลัพธ์ทุกครั้งที่ parameter เปลี่ยน ตามดีไซน์
- เพิ่ม memory ก่อนเพิ่ม iterations — ถ้าแข็งแรงได้แค่แกนเดียว ให้เพิ่ม m ก่อน เพราะ memory hardness คือสิ่งที่ทำร้าย GPU มากที่สุด
- อย่า trim หรือ normalize password ก่อน hashing (และตอน verify ให้เทียบ parameter ใน PHC string ครบ ไม่ใช่แค่ digest)
- ปล่อยให้ library จัดการ salt — เครื่องมือนี้ generate ให้อัตโนมัติ backend ของคุณก็ควรทำเช่นกัน อย่าใช้ salt ซ้ำข้าม user และอย่าแยกเก็บนอก PHC string
- วางแผน rehash — เก็บ PHC string ตามที่ได้มา; เมื่อ hardware ดีขึ้น ให้เพิ่ม default แล้ว rehash แบบโปร่งใสเมื่อ user login สำเร็จครั้งถัดไป
- อย่าปล่อยข้อมูลลับลง log — เครื่องมือนี้คำนวณฝั่ง client ทั้งหมด แต่พอคุณวาง hash ลง ticket หรือ chat ความเสี่ยงก็ย้ายทันที — ให้ถือว่า PHC string เป็น sensitive configuration
พร้อมเริ่มแฮชหรือยัง?
เปิด Argon2 Hash Generator ฟรีแล้วสร้าง Argon2id hash แรกของคุณในไม่ถึงสิบวินาที — ปรับ parameter ได้, salt อัตโนมัติ และมีตัว verify ในตัว ทำงานเป็นส่วนตัวทั้งหมดในเบราว์เซอร์ password ของ user คุณสมควรได้มากกว่า hash ที่เร็ว; ให้พวกเขาได้ hash ที่ แพงโดยตั้งใจ ต่างหาก
เครื่องมือที่เกี่ยวข้องที่คุณอาจสนใจ:
- Bcrypt Generator — password hash คลาสสิกที่ยังใช้งานแพร่หลาย
- Password Hash Verifier — ระบุและตรวจสอบ hash format ต่างๆ
- TOTP Generator — สร้าง time-based one-time password สำหรับทดสอบ 2FA
คำถามที่พบบ่อย
ถ: password ของฉันถูกส่งไปเซิร์ฟเวอร์หรือไม่?
ตอบ: ไม่ อัลกอริทึม Argon2 รันในเบราว์เซอร์ผ่าน WebAssembly password, salt และ hash ที่ได้ไม่เคยออกจากอุปกรณ์ของคุณ และเครื่องมือยังใช้งานได้แม้ตัดอินเทอร์เน็ต
ถ: parameter Argon2id แบบไหนเหมาะกับ production login?
ตอบ: ค่าพื้นฐานปัจจุบันของ OWASP คือ m=19,456 KiB (19 MiB), t=2, p=1 ค่า default ของเครื่องมือคือ 64 MiB, 3 iterations, parallelism 1 ซึ่งสูงกว่าอย่างสบาย เลือกค่าสูงสุดที่ทำให้ login latency ยังอยู่ประมาณ 250–500 ms
ถ: ทำไม password เดิมถึงได้ hash ต่างกันทุกครั้ง?
ตอบ: แต่ละครั้งใช้ salt สุ่ม 16 ไบต์ใหม่ ซึ่งตั้งใจเพื่อกำจัด rainbow table การ verify ยังทำงานได้เพราะ salt เดินทางอยู่ใน PHC string นั่นเอง
ถ: จะ verify hash ที่ backend library สร้างได้ไหม?
ตอบ: ได้ วาง Argon2id PHC string ใดๆ ลงแท็บ verify พร้อม password ตัวเลือก เครื่องมือจะอ่าน salt และ parameter ที่ฝังใน string แล้วคำนวณใหม่ เหมือน verifier มาตรฐานฝั่ง backend
ถ: Argon2id vs bcrypt — ควรเลือกตัวไหน?
ตอบ: ระบบใหม่แนะนำ Argon2id (ตาม RFC 9106 และ OWASP) เพราะ memory hardness ทน GPU cracking ได้ดีกว่า bcrypt bcrypt ยังใช้ได้และผ่านสงครามมานาน แต่ deployment ใหม่ควรเลือก Argon2id ถ้า runtime รองรับ
แฮชอย่างมีความสุข!