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