กำลังทำตามคำแนะนำบน 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, เอ)
ในกรณีนี้?