2012-03-30 98 views
1

遵循使用AES算法的標準說明,我無法使用C#中的AES正確加密/解密一些文本。雖然我發現如果我將分別加密的數據與名爲aesIV的數據分開,我可以。根據我的理解,aesIV已經嵌入到加密數據中。所以我認爲這不會造成安全問題。請讓我問我是否可以做到。您可以將aesIV附加到通過AES加密算法加密的數據嗎?

預先感謝您。

+0

您可能從此獲得靈感:http://stackoverflow.com/questions/9533768/bouncycastle-j2me-rsa-using-custom-keys/9534898#9534898 – rosco 2012-03-30 07:19:40

+0

http://crypto.stackexchange.com/questions/ 2173 /如何對計算-AN-IV-時-I-具有-A-共享私鑰 – CodesInChaos 2012-03-30 08:43:15

回答

3

最常見的選項是在加密過程中將隨機IV預先加密到密文中。然後將其從解密期間設置爲IV的密文中刪除。在C#的通用管理加密中,隨機IV屬性是自動生成的,因此您可以簡單地檢索它並將其前置。

參見AesManaged和示例(其中IV單獨傳輸,但其他情況下可以)。

如果你在預先考慮IV後直接解密,那麼你會得到blocksize字節的垃圾。通常情況下不是這樣的,因爲去除垃圾和提前使用IV一樣容易。

正如您所設想的那樣,IV可能會以純文本傳輸。