สร้าง Hash ออนไลน์

Hash คืออะไร?

Hash Function คือฟังก์ชันที่แปลงข้อมูลขนาดใดก็ได้เป็นค่าความยาวคงที่ (hash value หรือ digest) ค่า hash เป็นแบบทางเดียว (one-way) ไม่สามารถย้อนกลับไปเป็นข้อมูลเดิมได้

Hash ใช้สำหรับตรวจสอบความสมบูรณ์ของข้อมูล (integrity), เก็บรหัสผ่าน, digital signatures, และอื่นๆ

อัลกอริทึมที่รองรับ

MD5 — 128-bit hash ใช้ตรวจสอบ checksum (ไม่แนะนำสำหรับ security)
SHA-1 — 160-bit hash (เลิกใช้ใน security context แล้ว)
SHA-256 — 256-bit hash จากตระกูล SHA-2 (แนะนำ ปลอดภัย)
SHA-512 — 512-bit hash จากตระกูล SHA-2 (ปลอดภัยที่สุด)

Hash ใช้ทำอะไร?

ตรวจสอบความสมบูรณ์ของไฟล์ (file integrity check)
เก็บรหัสผ่านในฐานข้อมูล (password hashing)
Digital signatures สำหรับยืนยันตัวตน
Content addressing ใน Git, IPFS
Checksum สำหรับ data deduplication

กรณีใช้งานจริง

tools.hashgen.info.useCases.content

ตรวจสอบ checksum ของไฟล์ที่ดาวน์โหลดมาว่าตรงกับที่เจ้าของเผยแพร่ ป้องกันไฟล์ถูกดัดแปลง
สร้าง hash ของ API response เพื่อใช้เป็น cache key ใน Redis หรือ CDN ลดการเรียก API ซ้ำ
สร้าง content hash สำหรับ cache busting ของ static assets เช่น CSS และ JavaScript
ตรวจสอบว่าข้อมูลสองชุดเหมือนกันหรือไม่โดยเปรียบเทียบ hash แทนการเทียบทั้งไฟล์
สร้าง fingerprint ของ configuration เพื่อตรวจจับการเปลี่ยนแปลงใน deployment pipeline

เคล็ดลับและแนวปฏิบัติที่ดี

tools.hashgen.info.tips.content

ใช้ SHA-256 เป็นค่า default สำหรับงาน integrity check เพราะปลอดภัยและเร็วเพียงพอสำหรับทุกกรณี
อย่าใช้ MD5 หรือ SHA-1 สำหรับงานด้าน security เพราะมี collision attack ที่ proven แล้ว
สำหรับ password hashing ต้องใช้ bcrypt, scrypt หรือ Argon2 ที่มี salt และ cost factor ไม่ใช่ SHA
เปรียบเทียบ hash แบบ constant-time ในโค้ดเพื่อป้องกัน timing attack อย่าใช้ === ธรรมดา
ใช้ฟีเจอร์สร้างทุกอัลกอริทึมพร้อมกัน เพื่อเปรียบเทียบความยาวและรูปแบบของแต่ละ algorithm

ข้อผิดพลาดที่พบบ่อย

tools.hashgen.info.commonMistakes.content

ใช้ SHA-256 เก็บ password โดยตรงโดยไม่ใส่ salt ทำให้ถูก rainbow table attack ได้ง่าย
สับสนระหว่าง hashing กับ encryption คิดว่า hash ถอดรหัสกลับได้ ซึ่งจริงๆ เป็น one-way function
ใช้ MD5 สำหรับงาน security-sensitive เช่น digital signature ทั้งที่มี known collision ตั้งแต่ปี 2004
ไม่ตรวจสอบ encoding ของ input ก่อน hash ทำให้ข้อความเดียวกันแต่ต่าง encoding ได้ hash ต่างกัน

เปรียบเทียบกับเครื่องมืออื่น

Hash Generator ของเราใช้ Web Crypto API (crypto.subtle) ซึ่งเป็น native API ของเบราว์เซอร์ เร็วและปลอดภัย ต่างจากเว็บไซต์บางแห่งที่ส่งข้อมูลไป hash บน server

เมื่อเทียบกับ command-line อย่าง shasum หรือ md5sum เครื่องมือนี้แสดง hash จากทุก algorithm พร้อมกันในหน้าเดียว ไม่ต้องพิมพ์คำสั่งหลายครั้ง และคัดลอกผลลัพธ์ได้ง่าย

คำถามที่พบบ่อย

MD5 ไม่แนะนำสำหรับ security เพราะมี collision attacks ที่สำเร็จแล้ว แต่ยังใช้ได้สำหรับ checksum ตรวจสอบความสมบูรณ์ของไฟล์ทั่วไป

Hash เป็นแบบทางเดียว (one-way) ไม่สามารถถอดรหัสกลับได้ ส่วน Encryption เป็นแบบสองทาง (two-way) สามารถถอดรหัสกลับด้วย key

เพราะ hash function เป็น deterministic function — input เดียวกันจะให้ output เดียวกันเสมอ นี่คือคุณสมบัติสำคัญที่ทำให้ใช้ตรวจสอบข้อมูลได้

ไม่ ใช้ Web Crypto API (crypto.subtle.digest) ในเบราว์เซอร์ของคุณโดยตรง ไม่มีข้อมูลถูกส่งออก

SHA-256 เพียงพอสำหรับงานส่วนใหญ่ SHA-512 ให้ความปลอดภัยสูงกว่าแต่ช้ากว่าเล็กน้อย เลือกตามความต้องการ

Rainbow table คือตาราง pre-computed ที่จับคู่ hash กับ plaintext ทั่วไป ใช้ถอดรหัส password ที่ hash โดยไม่มี salt ป้องกันโดยใช้ salt ที่ไม่ซ้ำกันต่อ password

HMAC (Hash-based Message Authentication Code) ใช้ secret key ร่วมกับ hash function เพื่อยืนยันทั้ง integrity และ authenticity ของข้อมูล ส่วน hash ธรรมดายืนยันแค่ integrity

Collision คือเมื่อ input สองตัวที่ต่างกันได้ hash เดียวกัน MD5 และ SHA-1 มี proven collision แล้ว จึงไม่ปลอดภัย SHA-256 ยังไม่มี collision ที่พบ

อ้างอิง

  1. NIST — Secure Hash Standard (SHS) — FIPS 180-4
  2. RFC 1321 — The MD5 Message-Digest Algorithm
  3. MDN Web Docs — SubtleCrypto.digest()

เครื่องมือนี้ประมวลผลในเบราว์เซอร์ ไม่ควรใช้ MD5 หรือ SHA-1 สำหรับงานด้าน security แนะนำ SHA-256 ขึ้นไป สำหรับ password hashing ควรใช้ bcrypt, scrypt หรือ Argon2 แทน

© 2026 ReSuMeYaDev. สงวนลิขสิทธิ์.