กำลังทำตามคำแนะนำบน https://datatracker.ietf.org/doc/html/rfc5649#section-3 ("AES Key Wrap with Padding Algorithm") และฉันได้มาถึงจุดที่จำเป็นต้องสร้าง แอลเอสบี(32,เอ) สำหรับ ค่าเริ่มต้นทางเลือก (AIV). น่าขบขัน โหนด JS กับ บัฟเฟอร์ เพื่อนำอัลกอริทึมไปใช้ ความเข้าใจของฉันคือ 32 บิต === buffer.length == 4 หรืออีกนัยหนึ่ง ความยาว 4 ของบัฟเฟอร์คือ 32 บิตที่อ้างอิงในบทความ ฉันได้เพิ่มคีย์หลังจากแปลงบัฟเฟอร์แล้วเติมด้วยค่าความยาว 8 - (ความยาว % 8) กับ 0 วินาที เป็นมูลค่าตามที่ระบุไว้ในบทความ ตอนนี้สิ่งที่ฉันคิดไม่ออกคือการได้รับค่า MLI 32 บิต. ฉันจะได้รับ ม.ลฉันเพิ่งรู้ว่ามัน ตัวบ่งชี้ความยาวของข้อความ แต่นั่นคือทั้งหมดที่ฉันรู้เกี่ยวกับมัน
ตัวอย่าง:
คีย์ const = Buffer.from ('คีย์ base64', 'base64');
const kek = Buffer.from('A65959A6', 'ฐานสิบหก');
ตอนนี้ที่นี่ฉันมีเพียง MSB(32, เอ) แต่ไม่ แอลเอสบี(32, เอ)ฉันจะได้รับค่าได้อย่างไร และมีอะไรที่ฉันทำผิดหรือไม่ โปรดช่วยด้วย ฉันใช้เวลาไปมากแล้วในการพยายามคิดเรื่องนี้
สถานการณ์: สมมติว่าความยาวคีย์ของฉันคือ 75 ตอนนี้ฉันต้องเติมอักขระ 5 ตัวที่เหลือเพื่อให้เป็นทวีคูณของ 8 ตอนนี้ฉันจะสร้างได้อย่างไร แอลเอสบี(32, เอ) ในกรณีนี้?