以下node.js代碼嘗試在ECB模式下使用AES 128創建密碼,初始化向量(IV)填充0字節。我知道應該不惜一切代價避免使用ECB模式進行加密,但它仍然需要支持第二次世界大戰之前建立的遺留系統(當第一次發現加密ECB模式的危險時)。 < </rant >>。Node.js加密:無效的IV長度
let keyBuffer = Buffer.from("DoNotUseUTF8Keys",'utf8');
let ivBuffer = Buffer.alloc(16); // 16 bytes set to 0
//try {
try {
let cipher = createCipheriv("AES-128-ECB", keyBuffer, ivBuffer);
} catch (e)
{
console.log(e.message);
}
當createCipheriv(或createDeciperiv)被調用時,node.js代碼會拋出「無效的IV長度」。
對於128位(16字節)的密碼,AES應該有一個16字節的初始化矢量(IV)。
這是一個錯誤還是我做錯了什麼?
「二戰前修建配套遺留系統」:MEGA.nz使用歐洲央行,因爲他們認爲它具有更好的性能和文件都加密使用共享密鑰文件密鑰和共享密鑰是完全隨機的,所以他們遭受任何危險。另一方面,一些實現缺乏ECB,使得使用它的性能變差。 –