This article has been translated from English to Thai.

การแฮชทำงานยังไงกันนะ?

ใน บทเรียนที่แล้ว ฉันได้แนะนำแนวคิดของการแฮชและคำศัพท์ที่เกี่ยวข้อง ตอนนี้เรามาดูกันว่ามันทำงานยังไง!

การแฮชเป็นการคำนวณทางคณิตศาสตร์ที่ ง่ายต่อการทำ แต่ โคตรยากที่จะย้อนกลับ.

กระบวนการแฮชจะเปลี่ยนข้อมูลชิ้นหนึ่งให้เป็นรหัสเลขฐานสอง คือ กลุ่มของเลข 0 และ 1.

จากนั้นมันจะแยกตัวเลขออกและทำการ " ยำใหญ่ " ซึ่งจะทำโดยสิ่งที่เรียกว่า "ฟังก์ชันแฮช".

การแฮชทำงานในคริปโตยังไง?

เมื่อใช้ในบิตคอยน์และคริปโตอื่นๆ ผลลัพธ์ที่ได้มักจะเป็น สตริงยาว 64 หลักของตัวเลขและตัวอักษร.

เนื่องจากการเปลี่ยนแปลงนี้ทำโดยอัลกอริธึมเข้ารหัส (ฟังก์ชันแฮช) สูตรการยำนี้จึงไม่มีใครรู้ ดังนั้นสตริง 64 หลักนี้จึงไม่สามารถย้อนกลับได้.

Hashing Concept

สตริง คือ ลำดับของตัวอักษร.

สตริงก็เหมือนประโยค มันถูกสร้างขึ้นโดยการรวมตัวกันของตัวอักษร.

String

นึกถึงแฮชเป็นกลุ่มของ ตัวอักษรและตัวเลขสุ่ม.

ข้อมูลที่ไม่ซ้ำกันจะสร้าง แฮชเดียวกันเสมอ.

ยกตัวอย่างเช่น ทุกครั้งที่สตริงด้านบนผ่านฟังก์ชันแฮช มันจะ สร้างแฮชเดียวกัน เสมอ.

แต่ถ้าเราทำการเปลี่ยนแปลง เล็กน้อย ที่สตริงล่ะ? (เน้นสีเหลือง.)

String Change

ประโยคจบด้วย เครื่องหมายคำถาม แทนที่จะเป็นจุด.

ถึงแม้จะเป็นการเปลี่ยนแปลงเล็กน้อยในประโยค แต่แฮชที่ได้ก็ แตกต่างกันโดยสิ้นเชิง.

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

จุดนี้สำคัญมากที่คุณควรจำไว้เพราะในบทเรียนต่อไป คุณจะเห็นว่ามันถูกใช้เพื่อป้องกันการแอบเปลี่ยนแปลงธุรกรรมก่อนหน้าอย่างไร.

ฟังก์ชันแฮชเป็นแบบ ทางเดียว เท่านั้น.

The hash function is ONE-WAY only.

คุณไม่สามารถนำแฮชที่มีอยู่แล้วมาพยายามย้อนกลับเพื่อหาสตริงต้นฉบับได้.

ดังนั้นถ้าคุณรู้แค่แฮช คุณไม่มีทางรู้ว่าข้อมูลต้นฉบับคืออะไร. คุณไม่สามารถ "วิศวกรรมย้อนกลับ" หรือแฮกแฮชได้.

สุดท้าย ความยาว ของผลลัพธ์ (แฮช) จะ ไม่เพิ่มขึ้น แม้ข้อมูลที่ใส่จะมีเยอะขึ้น ฟังก์ชันแฮชจะรับข้อมูลที่มีความยาวใดๆ และส่งคืนค่าที่มีความยาว คงที่.

Hash Output is Fixed

ถ้าคุณใส่ข้อความทั้งหมดของหนังสือแฮร์รี่ พอตเตอร์ ซึ่งมีมากกว่า 76,000 คำ ผลลัพธ์ของแฮชก็ยังคงยาวแค่ 64 ตัวอักษรเท่านั้น.

แล้วอีกครั้ง ถ้าคุณสะกดผิด แม้เพียงตัวอักษรเดียว ในหนังสือแฮร์รี่ พอตเตอร์ และนำมันผ่านฟังก์ชันแฮช มันจะสร้าง แฮชที่แตกต่างโดยสิ้นเชิง จากด้านบน.

นี่จะทำให้คุณสามารถรู้ได้ทันทีว่าหนังสือถูกแก้ไขโดยไม่ต้องตรวจสอบทุกคำในหนังสือเอง! เจ๋งใช่ไหมล่ะ?