การแฮช (Hashing) เป็นกระบวนการแปลงคีย์ที่กำหนดให้เป็นรหัส ฟังก์ชันแฮชสามารถใช้เพื่อแทนที่ข้อมูลด้วยรหัสแฮชที่สร้างขึ้นใหม่ อัลกอริทึมแฮชโดยทั่วไปใช้เพื่อให้ลายนิ้วมือดิจิทัลของเนื้อหาไฟล์ บ่อยครั้งใช้เพื่อให้แน่ใจว่าไฟล์ไม่ได้ถูกเปลี่ยนแปลงโดยผู้บุกเข้าหรือไวรัส ฟังก์ชันแฮชยังถูกใช้โดยระบบปฏิบัติการบางอย่างเพื่อเข้ารหัสรหัสผ่าน ฟังก์ชันแฮชให้การวัดความสมบูรณ์ของไฟล์
การแฮชใช้งานอัลกอริทึมที่แปลงบล็อกข้อมูลจากไฟล์เป็นค่าหรือคีย์สั้นกว่ามากที่มีความยาวคงที่ที่กำหนดสตริงเหล่านั้น ค่าแฮชที่ได้เป็นประเภทของสรุปที่เข้มข้นของแต่ละสตริงภายในไฟล์ที่กำหนด และต้องสามารถเปลี่ยนแปลงได้แม้เมื่อไบต์เดียวของข้อมูลในไฟล์นั้นถูกเปลี่ยนแปลง (avalanche effect)
สิ่งนี้ให้ข้อได้เปรียบมหาศาลในการแฮชในแง่ของการบีบอัดข้อมูล แม้การแฮชจะไม่ใช่การบีบอัด มันทำงานคล้ายการบีบอัดไฟล์มาก בכךที่ มันรับชุดข้อมูลที่ใหญ่กว่าและหดตัวมันลงเป็นรูปแบบที่เป็นไปได้มากขึ้น
ฟังก์ชันแฮชที่ดีสำหรับวัตถุประสงค์ความปลอดภัยควรเป็นกระบวนการหนึ่งทาง (unidirectional) ที่ต้องการอัลกอริทึมแฮชหนึ่งทาง (one-way hashing algorithm) ดังนั้น แฮกเกอร์จึงสามารถวิศวกรรมย้อนกลับแฮชเพื่อแปลงกลับเป็นข้อมูลต้นฉบับได้ง่าย ทำให้วัตถุประสงค์ของการเข้ารหัสถูกทำลายตั้งแต่แรก
สามารถเพิ่มความเป็นเอกลักษณ์ของเอาต์พุตที่เข้ารหัสได้ โดยการเพิ่มข้อมูลสุ่มเข้าไปในอินพุตของฟังก์ชันแฮช เทคนิคนี้เรียกว่า "salting" (การป่นเกลือ) และรับรองเอาต์พุตที่เป็นเอกลักษณ์แม้ในกระบวนการของอินพุตที่เหมือนกัน
ฟังก์ชันแฮชเข้ารหัส (cryptographic hash function) ควรทำงานให้มากที่สุดเท่าที่เป็นไปได้เหมือนฟังก์ชันสุ่ม ในขณะที่ยังคงเป็น deterministic และคำนวณได้อย่างมีประสิทธิภาพ ฟังก์ชันแฮชเข้ารหัสถือว่าไม่ปลอดภัพ หากใดๆ ของต่อไปนี้เป็นไปได้ในทางการคำนวณ:
- การค้นหาข้อความ (ที่ไม่เคยเห็นมาก่อน) ที่ตรงกับ digest ที่กำหนด
- การค้นหา "collisions" (การชน) ซึ่งข้อความสองข้อความที่แตกต่างกันมี message digest เหมือนกัน
ผู้โจมตีที่สามารถทำสิ่งเหล่านี้ได้ อาจ เช่น ใช้พวกเขาเพื่อแทนที่ข้อความที่ไม่ได้รับอนุญาตสำหรับข้อความที่ได้รับอนุญาต ในแนวคิด ไม่ควรเป็นไปได้แม้แค่การค้นพบข้อความสองข้อความที่ digest ของพวกเขาใกล้เคียงกันอย่างมาก และไม่ควรต้องการให้ผู้โจมตีสามารถเข้าใจอะไรที่มีประโยชน์เกี่ยวกับข้อความได้ เพียงจาก digest ของมัน ผู้โจมตีเรียนรู้อย่างน้อยหนึ่งชิ้นของข้อมูล คือ digest เอง ซึ่งตัวอย่างเช่น ให้ผู้โจมตีความสามารถในการระบุข้อความเดียวกันหากมันปรากฏอีกครั้ง
การแฮชยังมีค่าในการป้องกันหรือวิเคราะห์การปลอมแปลงไฟล์ ไฟล์ต้นฉบับจะสร้างแฮชซึ่งถูกเก็บรักษาพร้อมกับข้อมูลไฟล์ ไฟล์และแฮชถูกส่ง และฝ่ายรับตรวจสอบแฮชนั้นเพื่อดูว่าไฟล์ถูกเจรจากาไหม หากมีการเปลี่ยนแปลงใดๆ ให้กับเอกสาร แฮชจะแสดงให้เห็น