ReSuMeYaDev

เครื่องมือนักพัฒนา

Hash Generator — MD5 / SHA-1 / SHA-256 / SHA-512

สร้าง hash จากข้อความด้วย Web Crypto API รองรับ 4 algorithm ในหน้าเดียว — ทำงานในเบราว์เซอร์ทั้งหมด ข้อมูลไม่ออกจากเครื่อง

  • ใช้งานฟรี
  • MD5/SHA-1/256/512
  • Web Crypto API
  • รองรับมือถือ

คำจำกัดความ

Hash คืออะไร?

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

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

Algorithms

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

  • 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

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

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

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

แนวปฏิบัติ

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

  • ใช้ 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

หลีกเลี่ยง

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

  • ใช้ 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 พร้อมกันในหน้าเดียว ไม่ต้องพิมพ์คำสั่งหลายครั้ง และคัดลอกผลลัพธ์ได้ง่าย

FAQ

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

01 MD5 ยังปลอดภัยไหม?

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

02 Hash กับ Encryption ต่างกันอย่างไร?

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

03 ทำไม input เดียวกันได้ hash เดียวกันเสมอ?

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

04 ข้อมูลถูกส่งไปเซิร์ฟเวอร์ไหม?

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

05 ควรใช้ SHA-256 หรือ SHA-512?

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

06 Rainbow table attack คืออะไร?

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

07 HMAC ต่างจาก Hash ธรรมดาอย่างไร?

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

08 Collision ใน hash function คืออะไร?

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 แทน

นักพัฒนา

เครื่องมือคำนวณฟรีอื่น ๆ ที่คุณอาจสนใจ

ดูทั้งหมดในหมวดนี้

ต้องการเครื่องมือคำนวณสำหรับธุรกิจของคุณ?

ReSuMeYaDev รับพัฒนาเว็บไซต์ เครื่องมือคำนวณ และระบบภายในตามความต้องการ — Laravel, Vue, Nuxt, Go, Rust