0Pricing
Cryptology Academy · บทเรียน

การประยุกต์ใช้แฮช: ผลรวมตรวจสอบ HMAC และ Git

ดูการใช้แฮชในการจัดเก็บรหัสผ่าน ความถูกต้องของข้อมูล และการควบคุมเวอร์ชัน

การประยุกต์ใช้แฮช: ผลรวมตรวจสอบ HMAC และ Git เป็นบทเรียน Cryptology Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cryptology Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน

ยินดีต้อนรับ

ฟังก์ชันแฮชมีบทบาทสำคัญสามประการในระบบจริง ได้แก่ การตรวจสอบความถูกต้องของข้อมูล (ค่าตรวจสอบ) การยืนยันความถูกต้องของข้อความ (HMAC) และการติดตามประวัติโค้ด (Git)

ค่าตรวจสอบไฟล์

เมื่อดาวน์โหลดซอฟต์แวร์ ผู้ให้บริการจะเผยแพร่ค่าแฮช SHA-256 หลังดาวน์โหลด คุณจะคำนวณค่าแฮชแล้วเปรียบเทียบ: sha256sum ubuntu-24.04.iso # Should match published value exactly

ความถูกต้องของข้อมูลในการจัดเก็บ

ฐานข้อมูลอย่าง ZFS และ Btrfs จะคำนวณค่าตรวจสอบ SHA-256 สำหรับบล็อกข้อมูลทุกบล็อก เมื่อต้องอ่านข้อมูล ระบบจะตรวจสอบค่าตรวจสอบนั้น และตรวจพบข้อมูลบนดิสก์เสียหายโดยอัตโนมัติโดยไม่มีสัญญาณเตือน

การจัดเก็บข้อมูลโดยอ้างอิงเนื้อหา

Git, IPFS และ Docker ใช้การจัดเก็บข้อมูลที่อ้างอิงเนื้อหา: ชื่อของออบเจ็กต์แต่ละรายการ IS ค่าแฮชของออบเจ็กต์นั้น SHA-256(content) = ID ที่ไม่ซ้ำกัน เนื้อหาที่เหมือนกันจะถูกจัดเก็บเพียงครั้งเดียว และตรวจพบรายการซ้ำได้ทันที

การใช้ SHA-1 (และ SHA-256) ของ Git

การคอมมิต ต้นไม้ และบล็อบทุกรายการใน Git มีค่าแฮช SHA-1 ค่าแฮชของการคอมมิตครอบคลุม: เนื้อหา + ข้อมูลเมตา + ค่าแฮชของรายการแม่ การเปลี่ยนแปลงแม้เพียงหนึ่งบิตจะทำให้ค่าแฮชเปลี่ยน จึงทำให้เห็นได้ว่าประวัติถูกแก้ไขหรือไม่

โครงสร้าง HMAC

HMAC-SHA256(key, msg) = SHA256((key' XOR opad) || SHA256((key' XOR ipad) || msg)) โครงสร้างการแฮชสองชั้นที่ใช้แผ่นเติม XOR จะป้องกันการโจมตีแบบขยายความยาวต่อรหัสยืนยันข้อความที่ใช้กุญแจ

HMAC ใน Python

import hmac, hashlib def create_mac(key: bytes, msg: bytes) -> str: return hmac.new(key, msg, hashlib.sha256).hexdigest() mac = create_mac(b'secret', b'Hello!')

การเปรียบเทียบแบบใช้เวลาคงที่

เปรียบเทียบ HMAC ด้วย hmac.compare_digest() เสมอ ห้ามใช้ NOT == การโจมตีจากเวลา: การเปรียบเทียบที่หยุดตั้งแต่พบความแตกต่างจะเปิดเผยความยาวของส่วนที่ตรงกัน hmac.compare_digest เปรียบเทียบไบต์ทั้งหมดโดยใช้เวลาคงที่

HMAC ในการยืนยันตัวตนของ API

เว็บฮุกของ GitHub: ส่วนข้อมูลแต่ละรายการจะถูกลงนามด้วย HMAC-SHA256 โดยใช้ความลับที่ใช้ร่วมกัน รับเว็บฮุก → คำนวณ HMAC → เปรียบเทียบกับส่วนหัว X-Hub-Signature-256

การตรวจสอบรหัสผ่านด้วยแฮช

ลำดับการเข้าสู่ระบบ: ผู้ใช้ส่งรหัสผ่าน → เซิร์ฟเวอร์คำนวณค่าแฮช → เปรียบเทียบกับค่าแฮชที่จัดเก็บ เซิร์ฟเวอร์ไม่เคยถอดรหัส แต่จะแฮชใหม่แล้วเปรียบเทียบ ค่าแฮชที่จัดเก็บไม่เปิดเผยรหัสผ่าน

การใช้งานต้นไม้เมอร์เคิล

ต้นไม้เมอร์เคิลสร้างต้นไม้แฮชครอบคลุมข้อมูลทั้งหมด บล็อกของ Bitcoin จะมีรากเมอร์เคิลของธุรกรรมทั้งหมด ส่วน Certificate Transparency ใช้ต้นไม้เมอร์เคิลเพื่อสร้างบันทึกการตรวจสอบที่แสดงให้เห็นได้หากถูกแก้ไข

ตรวจสอบอย่างรวดเร็ว

เหตุใดการเปรียบเทียบ HMAC จึงต้องใช้ hmac.compare_digest() แทน ==

สรุปทบทวน

ยอดเยี่ยม! คุณได้นำฟังก์ชันแฮชไปใช้ในสถานการณ์จริงแล้ว ต่อไปเราจะลงลึกเรื่อง AES ซึ่งเป็นมาตรฐานการเข้ารหัสแบบสมมาตรที่มีการใช้งานมากที่สุดในโลก

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

บทเรียน “การประยุกต์ใช้แฮช: ผลรวมตรวจสอบ HMAC และ Git” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การประยุกต์ใช้แฮช: ผลรวมตรวจสอบ HMAC และ Git” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cryptology Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การประยุกต์ใช้แฮช: ผลรวมตรวจสอบ HMAC และ Git”

ดูการใช้แฮชในการจัดเก็บรหัสผ่าน ความถูกต้องของข้อมูล และการควบคุมเวอร์ชัน คุณปฏิบัติ Cryptology Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cryptology Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cryptology Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “การประยุกต์ใช้แฮช: ผลรวมตรวจสอบ HMAC และ Git” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Cryptology Academy นี้ได้ไหม

ได้ บทเรียน Cryptology Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. อะไรทำให้ฟังก์ชันแฮชดี
  2. MD5: ประวัติ การใช้งาน และเหตุผลที่เสียความปลอดภัย
  3. อธิบายตระกูล SHA-1 และ SHA-2
  4. การประยุกต์ใช้แฮช: ผลรวมตรวจสอบ HMAC และ Git
← กลับไปที่ Cryptology Academy