我有一個現有的數據格式,它的一部分以CFB模式下的AES加密。明文數據長度和加密數據長度相同。CFB中的C#AES加密,其中明文長度等於加密長度
在C#中,幾乎每一個我所採取的角度似乎期待加密長度是塊大小的整數倍,所以,我得到一個異常嘗試解密數據。
在研究解決方案,我用加密+和寫了一個快速的C++應用程序,成功地對數據進行解密,所以我敢肯定,我使用的是正確的算法,密鑰和IV。這工作正常,但我想盡可能保持C#中的所有內容。有什麼建議麼?下面
工作C++代碼:
//define key
unsigned char key[16];
//populate key
//...
//define iv
unsigned char iv[16];
//populate iv
//...
std::ifstream inFile;
//open file
inFile.open("file.aes",ios::binary);
//get file size
inFile.seekg(0,ios::end);
int fileSize = (int) inFile.tellg();
inFile.seekg(offset, ios::beg);
//read/close file
char* inBytes = new char[fileSize];
inFile.read(inBytes,fileSize);
inFile.close();
//configure decryption
CFB_Mode<AES>::Decryption cfbDecryption(key, 16, iv);
//populate output bytes
char* outBytes = new char[fileSize];
cfbDecryption.ProcessData((byte*) outBytes,(byte*) inBytes,fileSize);
//open/write/close output file
std::ofstream outFile;
outFile.open("out.dec");
outFile.write(outBytes,fileSize);
outFile.close();
delete[] inBytes;
你可以發佈你已經嘗試過的C#代碼,你所得到的例外呢? – Xint0 2012-03-02 23:08:30
你有沒有檢查[這個]的答案(http://stackoverflow.com/questions/3142279/encrypt-data-with-c-sharp-aescryptoserviceprovider-crypted-with-bouncycastle-aes)的問題? – 2012-03-03 01:29:30
@GregS q&a可以使用一些愛,它基本上是實現,如果我沒有錯誤 – 2012-03-03 12:32:35