ภาพ: อัลกอริทึมแฮช 32 บิต FNV-1 – ภาพรวม

ที่ตีพิมพ์: 12 มกราคม 2026 เวลา 13 นาฬิกา 29 นาที 27 วินาที UTC
ปรับปรุงล่าสุด : 9 มกราคม 2026 เวลา 21 นาฬิกา 41 นาที 23 วินาที UTC

แผนผังแสดงขั้นตอนการทำงานที่ชัดเจนของอัลกอริธึมแฮช FNV-1 32 บิต ตั้งแต่ไบต์อินพุตจนถึงผลลัพธ์แฮชสุดท้าย


หน้าเพจนี้ได้รับการแปลจากเครื่องคอมพิวเตอร์จากภาษาอังกฤษ เพื่อให้ทุกคนเข้าถึงได้มากที่สุด น่าเสียดายที่การแปลด้วยเครื่องยังไม่ถือเป็นเทคโนโลยีที่สมบูรณ์แบบ จึงอาจเกิดข้อผิดพลาดได้ หากต้องการ คุณสามารถดูเวอร์ชันภาษาอังกฤษต้นฉบับได้ที่นี่:

FNV-1 32-Bit Hash Algorithm – Visual Overview

ผังงานแสดงขั้นตอนการทำงานของฟังก์ชันแฮช FNV-1 แบบ 32 บิต โดยประมวลผลไบต์อินพุตโดยใช้ฐานออฟเซ็ต การ XOR และการคูณ เพื่อสร้างค่าแฮชสุดท้าย

เวอร์ชันต่างๆ ของภาพนี้

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

ขนาดปกติ (1,536 x 1,024)

ขนาดใหญ่ (3,072 x 2,048)

ขนาดใหญ่มาก (4,608 x 3,072)

ขนาดใหญ่พิเศษ (6,144 x 4,096)

ขนาดใหญ่เกินจริงอย่างน่าขัน (1,048,576 x 699,051)

  • กำลังอัปโหลดอยู่... ;-)

คำอธิบายภาพ

ภาพนี้เป็นอินโฟกราฟิกแนวนอนขนาดกว้าง ชื่อเรื่องว่า "อัลกอริทึมแฮช 32 บิต FNV-1" แสดงด้วยตัวอักษรขนาดใหญ่สีเข้มอยู่ด้านบน รูปแบบโดยรวมดูสะอาดตา เรียบง่าย และเน้นการสอน โดยใช้รูปสี่เหลี่ยมผืนผ้าโค้งมน วงกลม และลูกศรเพื่อนำทางผู้ดูจากซ้ายไปขวา พื้นหลังเป็นสีขาว ทำให้แผนภาพดูเบาและไม่รก เหมาะสำหรับการสอน

ทางด้านซ้ายสุดคือสี่เหลี่ยมผืนผ้าสีน้ำเงินที่มีมุมโค้งมน มีป้ายกำกับว่า "ข้อมูลป้อนเข้า" ใต้กล่องนี้เป็นแถวแนวนอนขนาดเล็กที่มีบล็อกหลากสีแทนไบต์ข้อมูลแต่ละไบต์ ลูกศรสั้นๆ ชี้จากกล่องข้อมูลป้อนเข้าไปยังกึ่งกลางของแผนภาพ แสดงจุดเริ่มต้นของกระบวนการแฮช

ถัดไปเป็นสี่เหลี่ยมผืนผ้าโค้งมนสีเหลืองที่มีป้ายกำกับว่า "Offset Basis" พร้อมคำบรรยายเล็กๆ ด้านล่างว่า "32-Bit Value" ช่องนี้แสดงถึงสถานะภายในเริ่มต้นที่อัลกอริทึมใช้ก่อนที่จะประมวลผลไบต์อินพุตใดๆ ลูกศรจากข้อมูลอินพุตชี้เข้าไปในช่อง Offset Basis นี้ แสดงว่าอัลกอริทึมเริ่มต้นด้วยค่าเริ่มต้นที่กำหนดไว้ล่วงหน้านี้

จากฐานออฟเซ็ต กระแสข้อมูลจะไหลต่อไปยังโหนดวงกลมสีส้มที่มีป้ายกำกับว่า "XOR" ไอคอนไบต์สีเล็กๆ สองอันจะอยู่ด้านล่างวงกลมนี้ โดยมีคำอธิบายว่า "ไบต์อินพุต" ซึ่งเน้นย้ำว่าแต่ละไบต์จากข้อมูลดั้งเดิมจะถูกรวมเข้ากับสถานะแฮชปัจจุบันโดยใช้การดำเนินการ XOR แบบบิต การแสดงภาพบ่งบอกว่าขั้นตอน XOR นี้จะถูกทำซ้ำสำหรับทุกไบต์

หลังจากขั้นตอน XOR ลูกศรจะชี้ไปยังโหนดวงกลมสีน้ำเงินที่มีสัญลักษณ์การคูณกำกับอยู่ ซึ่งมีป้ายกำกับเชิงแนวคิดว่า "คูณด้วยจำนวนเฉพาะ FNV" อยู่เหนือโฟลว์ สิ่งนี้สื่อให้เห็นว่าอัลกอริทึมจะคูณค่ากลางด้วยจำนวนเฉพาะคงที่เพื่อผสมบิตเพิ่มเติมและกระจายการเปลี่ยนแปลงไปทั่วแฮช

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

เหนือแถวหลักของกล่องและวงกลม มีเส้นแนวนอนบางๆ พร้อมลูกศรเล็กๆ ชี้ลง ซึ่งมีข้อความต่างๆ เช่น "เริ่มต้นด้วยค่าออฟเซ็ต" "XOR กับไบต์" "คูณด้วยจำนวนเฉพาะ FNV" และ "ค่าแฮช 32 บิต" คำบรรยายเหล่านี้ทำหน้าที่เป็นคำแนะนำทีละขั้นตอน สรุปขั้นตอนของอัลกอริทึมด้วยภาษาที่เข้าใจง่าย

ด้านล่างของแผนภาพ มีลูกศรยาวลากจากซ้ายไปขวา พร้อมข้อความว่า "ทำซ้ำสำหรับข้อมูลแต่ละไบต์" ซึ่งอธิบายให้ชัดเจนว่าขั้นตอน XOR และการคูณนั้นเป็นลูปที่ใช้กับทุกไบต์ในลำดับข้อมูลขาเข้า ไม่ใช่แค่การดำเนินการเพียงครั้งเดียว

โดยรวมแล้ว แผนภาพนี้หลีกเลี่ยงการใช้ค่าคงที่ตัวเลขที่เฉพาะเจาะจง และเน้นไปที่กระบวนการทำงานเชิงแนวคิดแทน กล่าวคือ ไบต์อินพุตเข้าสู่กระบวนการ สถานะภายในจะถูกเริ่มต้น ไบต์แต่ละตัวจะถูก XOR กับค่าปัจจุบัน ผลลัพธ์จะถูกคูณ และวงจรจะวนซ้ำจนกว่าจะได้ค่าแฮช 32 บิตสุดท้าย การใช้สีที่แตกต่างกันสำหรับแต่ละขั้นตอนทำให้เข้าใจอัลกอริธึมได้ง่ายแม้สำหรับผู้เริ่มต้น

รูปภาพนี้เกี่ยวข้องกับ: เครื่องคำนวณแฮชโค้ด Fowler-Noll-Vo FNV1-32

แชร์บนบลูสกายแชร์บนเฟสบุ๊คแชร์บน LinkedInแชร์บน Tumblrแชร์บน Xปักหมุดบน Pinterestแชร์บน Reddit