簡體   English   中英

使用AES限制加密結果

[英]Limit the encrypted result using AES

我需要加密文本(16個字符),最好使用AES,並且我需要限制結果加密文本的長度(14個或16個字符)。 加密的只能是字符和數字(不是'=','?',...)是可能的嗎?

我需要從密文(加密的)中取回原始文本。

有沒有一種方法可以使用RijndaelManaged(System.Security.Cryptography)?

密文需要至少與純文本一樣長(在熵的意義上)。 您不能無損地壓縮任意文本。 因此,如果將輸出限制為log2(10 + 2 * 26)* 16 = 95位,則輸入的熵將不止於此。 這與AES無關,這是一種數學限制,適用於所有無損編碼。

什么角色 一個bytechar或unicode-codepoint?

AES還有一個問題,它是一個塊密碼,最小輸出大小等於128塊大小。 而且由於輸出看起來是隨機的,因此加密后無法對其進行壓縮。 那已經超出了您的限制。 而且大多數加密模式都增加了一些額外的填充。

有一些函數可以將任意長度的輸入映射到恆定長度的輸出。 它們稱為哈希函數。 但是遵循pidgeon-hole原理,它們將多個輸入映射到一個輸出。 因此,您無法取回所有可能輸入的輸入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM