SM4 加密工具

免費線上 SM4 加密解密工具,支援 ECB/CBC 模式、PKCS 填充、HEX/Base64 格式和隨機金鑰/IV 生成,適合國密演算法與 SM4 解密場景。

設定

金鑰與IV設定

加解密

SM4 加密知識

關於 SM4

SM4 是中國國家密碼管理局公佈的分組密碼演算法,塊大小 128 位,金鑰長度 128 位。SM4 被廣泛應用於國密標準生態,如 SM TLS/SSLWAPI 無線區域網安全、電子政務與金融行業的合規加密等。

與 AES 的聯絡與區別

  • 共同點:
    • 都是 128 位分組密碼;支援常見模式(ECB/CBC 等)與標準填充(PKCS#5/7)。
    • 在實現與使用方式上高度相似:需要金鑰(Key)、可選的初始化向量(IV)、選擇模式與填充後對明文分塊處理。
  • 不同點:
    • 標準與生態:AES 屬於國際標準(FIPS 197),全球通用;SM4 屬於中國國家密碼標準(GM/T 系列),用於滿足本地合規與監管要求。
    • 金鑰長度:AES 支援 128/192/256 位;SM4 固定為 128 位。
    • 效能與硬體支援:現代 CPU/GPU 對 AES 有更廣泛的硬體加速支援;SM4 的硬體加速支援正在逐步完善,視具體平臺而定。
    • 合規性:在中國境內/面向中國業務場景,往往需要使用 SM4 以滿足“國密”合規;跨國/通用場景更常用 AES。

ECB 與 CBC 模式對比

專案 ECB CBC
是否使用 IV 是(16 位元組)
錯誤傳播 有(塊級傳播)
並行性 高(可並行) 低(鏈式依賴)
安全性 低(洩露資料結構) 高(推薦)
典型用途 隨機資料、測試 實際業務資料加密
  • ECB:每個 16 位元組塊獨立加密,會洩露資料結構,不推薦用於結構化/重複性強的資料。
  • CBC:使用隨機且不可複用的 16 位元組 IV,將相鄰塊連結,能有效掩蓋模式特徵,業務場景更安全可靠。

填充與對齊

  • PKCS#5/PKCS#7:自動補齊至 16 位元組倍數,適用於絕大多數文本與二進位制資料。
  • NoPadding:不做填充,明文/密文長度必須是 16 位元組的倍數;適用於已經對齊的資料或自定義協議。

使用建議

  1. 模式選擇:優先使用 CBC,避免 ECB 處理結構化資料。
  2. IV 管理:CBC 的 IV 必須是加密安全隨機數,且每次加密唯一且不可複用
  3. 金鑰生成:使用安全隨機數生成 128 位金鑰;避免弱口令/可預測鍵值。
  4. 輸出格式:密文可用 HEXBase64 表達;跨系統傳輸推薦 Base64。
  5. 合規考量:在中國境內或涉及國密合規的系統,優先使用 SM4;跨國或國際生態場景則以 AES 為主。