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

C# 加密解密:輸出長度必然隨明文變化,無法固定為短長度

     編輯:程式設計綜合問答

核心結論

可逆加密(對稱/非對稱)的密文長度與明文長度成正比,無法將任意長明文加密為固定短長度。這違背信息論:解密需還原所有信息,熵不減。

常見誤區

  • 以為 Base64 編碼後變短 —— 實際增長 ~33%。
  • 以為雜湊(MD5/SHA)可解密 —— 雜湊不可逆,資訊損失。

可行替代方案

  1. 壓縮後加密:先 GZip/Deflate 壓縮明文,再加密,可減少體積(視冗余度)。
  2. 分段加密 + 索引:大檔案分塊加密,僅傳輸索引或關鍵片段。
  3. 格式保留加密 (FPE):特定場景(如信用卡號)保持格式長度,但需專用演算法。

若需「短憑證」驗證完整性,請使用數位簽名(簽名長度固定,但不包含明文)。

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