Score:0

ถอดรหัสอินพุตจากเอาต์พุตที่รู้จักโดยใช้ SHA512 หรือไม่

ธง in

คำถามพื้นฐาน ฉันกำลังศึกษาด้วยตนเองเกี่ยวกับฟังก์ชันแฮช

ถ้าใส่ สวัสดี เป็นอินพุตในฟังก์ชันแฮช SHA512 (เช่น การใช้ นี้) ฉันได้รับแฮชต่อไปนี้: 9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043

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

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

pigeonburger avatar
co flag
ใช่ (เว้นแต่จะมีการทับซ้อนกันที่สตริงสุ่มที่แตกต่างกันโดยสิ้นเชิงเกิดการปะทะกัน และทั้งคู่มีแฮชเหมือนกัน) หากคุณจำได้ว่าเบอร์เกอร์เนื้อมาจากวัว คุณสามารถถอดรหัสได้ว่าเบอร์เกอร์เนื้อชิ้นอื่นๆ น่าจะทำมาจากวัว สิ่งเดียวที่คุณไม่สามารถทำได้คือเปลี่ยนเนื้อวัวกลับเป็นวัว - คุณต้องมี *ความรู้เดิม* ว่ามันถูกสร้างขึ้นมาอย่างไร สิ่งเดียวกันกับแฮช
Score:2
ธง my

ฉันสังเกตเห็นว่าอัลกอริทึม SHA512 ให้ผลลัพธ์เหมือนกัน ไม่ว่าฉันจะป้อน สวัสดีวันนี้หรือพรุ่งนี้ หรือหากฉันใช้คอมพิวเตอร์ของฉันหรือของพี่สาว

ใช่แล้ว ฟังก์ชันแฮชจะไม่มีประโยชน์มากนักหากบางครั้งให้คำตอบที่แตกต่างกัน

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

จากที่กล่าวมาข้างต้น หมายความว่าการทราบรหัสแฮชที่ส่งออกไปข้างต้นแล้วเป็น Priori ช่วยให้ฉันสามารถถอดรหัสได้ว่าอินพุต SHA512 ที่สอดคล้องกันคือ 'สวัสดี' หรือไม่

สิ่งที่คุณทำได้คือลองใช้ SHA512 กับอินพุตต่างๆ หากอินพุตตัวใดตัวหนึ่งกลายเป็น 'สวัสดี' แสดงว่าใช่ คุณจะเห็นเอาต์พุตเดียวกัน และอนุมานได้ว่า (ยกเว้นความบังเอิญที่เหลือเชื่อ) อินพุตดั้งเดิมก็เป็น 'สวัสดี' เช่นกัน

อย่างไรก็ตาม นั่นคือสิ่งที่ดีที่สุดที่คุณสามารถทำได้ ด้วยฟังก์ชันแฮชที่ดี (และ SHA512 เป็นฟังก์ชันแฮชที่ดี) ไม่มีทางที่จะกู้คืนสตริงเดิม (หรือสตริงอื่นที่แฮชเป็นค่าเดียวกัน) โดยไม่ต้องลองเดาหลายๆ อย่าง

Score:0
ธง ng
SSA

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


ตอนนี้คำถามของคุณเกี่ยวกับวิธีตรวจสอบแฮชที่กำหนดนั้นไม่ซ้ำกับอินพุต นั่นคือความเป็นหนึ่งต่อหนึ่ง ดังนั้น เมื่อเวลาผ่านไปเนื่องจากการชนกัน ฟังก์ชันแฮชใหม่จึงเกิดขึ้นเช่น MD4,MD5, SHA1,SHA2.. การรับอินพุตของแฮช o/p สำหรับแฮชที่ใหม่กว่าเช่น SHA512 หรือ SHA256 เป็นเรื่องยากอย่างยิ่ง


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

Score:0
ธง it

นี่หมายความว่าการรู้รหัสแฮชที่ส่งออกข้างต้นเป็น Priori ช่วยให้ฉันถอดรหัสได้ว่าอินพุต SHA512 ที่สอดคล้องกันคือ 'สวัสดี' หรือไม่

ใช่และไม่...

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

นั่นเป็นเหตุผลว่าทำไมการใช้วันเกิดหรือ 123456 ของคุณจึงเป็นตัวเลือกที่ไม่ดี เนื่องจากตารางจะจดจำแฮชได้ง่ายมาก

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

โพสต์คำตอบ

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