首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

OpenSSL AES-256-CBC 加解密:填充模式、分組長度與 IV 使用詳解

     編輯:程式設計綜合問答

問題背景

使用 OpenSSL EVP_DecryptInit/Update/Final 進行 AES-256-CBC 解密,Key 32 字節,IV 16 字節,明文 32 字節,密文 48 字節,疑惑分組長度、填充模式及 IV 與填充後分組的異或運算。

核心知識點

  • 分組長度:AES 固定 128 位(16 字節),與 Key 長度無關。
  • 填充:OpenSSL EVP 高級 API 預設使用 PKCS#7 填充(PKCS#5 為 8 字節分組算法專用,AES 用 PKCS#7)。明文 32 字節正好是 2 個分組,無需填充時仍會加一個完整填充分組(16 字節全 0x10),故密文長度 = 48 字節。
  • IV 作用:僅用於第一個分組的 CBC 異或,後續分組使用前一個密文分組異或。IV 長度固定等於分組長度(16 字節),與填充後分組大小無關。

參考資料

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved