Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

Hashing ในความปลอดภัยของข้อมูลคืออะไร?


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

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

แฮชคือเอาต์พุตของอัลกอริทึมการแฮช เช่น MD5 (Message Digest 5) หรือ SHA (Secure Hash Algorithm) โดยพื้นฐานแล้ว อัลกอริธึมเหล่านี้มีเป้าหมายเพื่อสร้างสตริงที่มีความยาวคงที่และค่าแฮชที่ไม่ซ้ำใคร หรือสรุปข้อความสำหรับองค์ประกอบของข้อมูลหรือข้อความที่กำหนด

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

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

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

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

สมมุติว่าสามารถมีรายชื่อได้ 20,000 หมายเลข และสามารถขอให้ค้นหาหมายเลขเฉพาะในรายการนั้นได้ และสามารถสแกนแต่ละหมายเลขในรายการเพื่อดูว่าตรงกับหมายเลขที่ป้อนหรือไม่

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