This article has been translated from English to Thai.

ที่ผ่านมาในบทเรียนก่อนๆ คุณได้เรียนรู้ อะไรคือ hashing และ 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 ของคุณเองแล้ว! 👏