คำตอบสั้น ๆ ;
คุณกำลังผสมฟังก์ชันการบีบอัดและฟังก์ชันแฮช ทั้งสองหน้า / ไลบรารีเป็นจริงตามบริบท!
คำตอบเพิ่มเติม
SHA-256 เช่นเดียวกับอัลกอริธึมแฮชอื่น ๆ ที่มีการเสริมเสมอและถูกกำหนดไว้ใน NIST.FIPS.180-4
สมมติว่าความยาวของข้อความ $M$, เป็นบิต, $\ell$ เป็นบิต ต่อท้ายบิต 1
ต่อท้ายข้อความ ตามด้วย เค
ศูนย์บิตที่ไหน เค
เป็นคำตอบที่ไม่เป็นลบที่เล็กที่สุดของสมการ
$$\ell +1 + k \equiv 448 \bmod 512$$ จากนั้นต่อท้ายบล็อก 64 บิตที่เท่ากับตัวเลข $\ell$ แสดงโดยใช้การแทนเลขฐานสอง
ดังนั้น 512 บิตศูนย์ใน SHA-256 จะมี 447 ศูนย์ ($k$ ส่วนหนึ่ง);
$$\text{Padded_Message} =\underbrace{\texttt{000...00}}_{512-ศูนย์}||\texttt{1}||\underbrace{\texttt{000...00}}_ {447-zeros}||\underbrace{\texttt{การเข้ารหัสเล้ง}}_{64-บิต}$$
หากคุณต้องการทดสอบอินพุตบางตัวจริงๆ ตรวจสอบให้แน่ใจว่าถูกต้องในเวกเตอร์ทดสอบของ NIST ที่กำหนดไว้ โปรแกรมตรวจสอบอัลกอริทึมการเข้ารหัส - ฟังก์ชันแฮช
สำหรับการเติมตามปกติจะไม่เกี่ยวข้องกับผู้ใช้ ไลบรารีจัดการช่องว่างภายในสำหรับผู้ใช้
เนื่องจากเป็น 512 บิตพอดี จึงไม่มีการแยกและไม่มีช่องว่างภายใน แต่จากเครื่องคิดเลขออนไลน์หรือรหัส golang ฉันจะได้รับแฮช sha-256 ของอินพุต null เป็น:
ดังที่กล่าวไว้ข้างต้น ช่องว่างภายในจะถูกกำหนดเสมอ เป็นส่วนหนึ่งของอัลกอริทึมแฮช SHA-256
อินพุตของคุณไม่ใช่อินพุต null แต่เป็นอินพุตศูนย์ 512 บิต NIST ให้เวกเตอร์ทดสอบความยาวเป็นศูนย์และได้ผลลัพธ์เป็น
เลน = 0
ข่าวสารเกี่ยวกับ = 00
MD = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
กำลังทดสอบอินพุตของคุณ sha256algorithm.com ผลิต
f5a5fd42d16a20302798ef6ed309979b43003d2320d9f0e8ea9831a92759fb4b
ฉันได้ทดสอบหน้านี้กับเวกเตอร์ทดสอบของ NIST ด้วย
ลิงค์ที่คุณให้เป็น สกาล่าแมมบ้า กล่าวถึง;
เอาต์พุต: ค่าผูกมัดหลังจากบีบอัดบล็อกอินพุต (ในรูปแบบเดียวกับไดเจสต์จะถูกส่งกลับ)
สำคัญ: สิ่งเหล่านี้ไม่ใช่เวกเตอร์ทดสอบสำหรับฟังก์ชันแฮช SHA-256 ที่สมบูรณ์ เนื่องจากกฎการเติมจะถูกละเว้น
นี่คือผลลัพธ์ของฟังก์ชันการบีบอัดแรก สามารถตรวจสอบได้ที่ sha256algorithm.com หากคุณหยุดที่ขั้นตอนที่ 164 วางเมาส์บนค่าเริ่มต้นแล้วคุณจะได้ค่าฐานสิบหก
da5698be17b...
สิ่งนี้เหมือนกันกับอีกลิงค์หนึ่งไปยัง; ให้เป็น เวกเตอร์การทดสอบการบีบอัด sha256.
โปรดจำไว้ว่าเอาต์พุตของฟังก์ชันการบีบอัดคือค่าเริ่มต้นของฟังก์ชันการบีบอัดถัดไป หากจำเป็น หากไม่ต้องการ แสดงว่าเป็นเอาต์พุตของ SHA-256 ค่าเริ่มต้นแรกจะได้รับ
คำเหล่านี้แทนเศษส่วนสามสิบสองบิตแรกของรากที่สามของจำนวนเฉพาะหกสิบสี่ตัวแรก
เป็น ก ไม่มีอะไรขึ้นฉันแขนของฉันหมายเลข แม้ว่านี่เป็นเรื่องทางจิตวิทยา