This article has been translated from English to Thai.
ที่ผ่านมาในบทเรียนก่อนๆ คุณได้เรียนรู้ อะไรคือ hashing และ hashing ทำงานอย่างไร ไปแล้ว
แต่เพื่อจะเข้าใจว่าจริงๆ แล้วโปรแกรมพิเศษเหล่านี้ทำอะไรบ้าง มาดูตัวอย่างจริงๆ กันเถอะ!

มาดูกันว่ากระบวนการ hashing ทำงานอย่างไรด้วย hash function จริงๆ
เนื่องจาก SHA-256 เป็น hash function ที่ Bitcoin เลือกใช้ เรามาใช้มันเป็นตัวอย่างกันเถอะ
นี่คือตัวอย่างแรกของเรา:
BabyPips.com เก๋ไก๋เหมือนน้ำแข็ง
เมื่อผ่าน SHA-256 hash function ประโยคนี้จะสร้างค่า hash ดังต่อไปนี้ ซึ่งรู้จักกันในชื่อว่า “digest” หรือแค่ “hash”:
A58E12FAC905B8F84EA2F64F888191A4B66A67CC45F8E7B7B0F94C37A134CB57
คุณจะเห็นว่า digest นี้เป็นการรวมกันของตัวอักษรและตัวเลข และมีความยาว 64 ตัวอักษรเป๊ะๆ
นอกจากนั้นแล้ว ไม่มีอะไรให้คุณเรียนรู้จากการดู digest นี้ มันไม่มีรูปแบบหรือเบาะแสว่า input คืออะไร มันเหมือนกับความเปะปะเยอะแยะอยู่ผลลัพธ์อาจดูสุ่ม แต่ไม่มีทางที่คุณจะเดา input ได้จากการดูผลลัพธ์
ถ้าคุณใส่ input ผ่าน SHA-256 hash function อีกครั้ง คุณจะได้ผลลัพธ์ (“hash”) เดิมอีกครั้ง
input เดิมจะ ALWAYS สร้างผลลัพธ์เดิม
ตอนนี้ มาทำการเปลี่ยนแปลงเล็กๆ น้อยๆ กับ input แรกและดูว่าเกิดอะไรขึ้น:
BabyPips.com เก๋ไก๋เหมือนเหา
สังเกตว่าตัวอักษร “l” ถูกเพิ่มเข้าไปในคำว่า “ice” เพื่อสะกดคำว่า “lice”
นี่คือ digest ใหม่:
B8784EAEB1FC50719B2041FB1AEE30FF91516529CCB65B4B446CC4D5F6B4EB95
ตอนนี้มาลองเปรียบเทียบกัน:
| Input | Digest |
|---|---|
| BabyPips.com เก๋ไก๋เหมือนน้ำแข็ง | A58E12FAC905B8F84EA2F64F888191A4B66A67CC45F8E7B7B0F94C37A134CB57 |
| BabyPips.com เก๋ไก๋เหมือนเหา | B8784EAEB1FC50719B2041FB1AEE30FF91516529CCB65B4B446CC4D5F6B4EB95 |
คุณจะเห็นว่านี่คือผลลัพธ์ที่แตกต่างกันอย่างสิ้นเชิงจาก digest แรก!
แม้ว่า input จะคล้ายกันมาก การเปลี่ยนแปลงเพียงตัวอักษรเดียวก็สร้างผลลัพธ์ที่ แตกต่างกันอย่างสิ้นเชิง

เหาน่ะน่าขยะแขยง งั้นมาทำการเปลี่ยนแปลงอีกครั้งกับ input:
BabyPips.com เก๋ไก๋เหมือนข้าว
มาลองดูว่าเกิดอะไรขึ้น:
FCA7032BE8CF7F3C0DD75B8DEB77412E452EA5E2275BAA4125123CD639ED2C9A
input ที่แตกต่างกันอย่างสิ้นเชิงอีกครั้ง!
ตอนนี้มาลองเปรียบเทียบทั้งสาม:
| Input | Digest |
|---|---|
| BabyPips.com เก๋ไก๋เหมือนน้ำแข็ง | A58E12FAC905B8F84EA2F64F888191A4B66A67CC45F8E7B7B0F94C37A134CB57 |
| BabyPips.com เก๋ไก๋เหมือนเหา | B8784EAEB1FC50719B2041FB1AEE30FF91516529CCB65B4B446CC4D5F6B4EB95 |
| BabyPips.com เก๋ไก๋เหมือนข้าว | FCA7032BE8CF7F3C0DD75B8DEB77412E452EA5E2275BAA4125123CD639ED2C9A |
มันสำคัญที่จะเน้นย้ำว่า literally input ใดๆ ก็สามารถใส่เข้าฟังก์ชัน hash ได้
ไม่ว่าจะยาวแค่ไหน ผลลัพธ์จะมีความยาวเท่าเดิมเสมอและดูสุ่มทั้งหมด
ลองเล่นกับเครื่องมือนี้เพื่อดูด้วยตัวเอง:
ลองทำการเปลี่ยนแปลง เล็กๆ น้อยๆ กับสิ่งที่คุณพิมพ์แล้วสังเกตดูว่า hash แตกต่างอย่างสิ้นเชิงอย่างไร
นั่นมันเยี่ยมใช่ไหม?! 🤓
ยินดีด้วย! คุณได้สร้าง hash ของคุณเองแล้ว! 👏