文字列を復号化しようとしていますが、
指定された初期化ベクトル(IV)が、このアルゴリズムのブロックサイズと一致しません。
私はしばらくの間SOとWebを検索していて、IVが32バイトで、16バイトである必要があることを理解していますが、それを実現する方法がわかりません。取得する文字列はAES/CBC / PKCS5Paddingを使用して暗号化されており、私のコード(実際にはWebのどこかで見つけました)は
var btKey = Encoding.ASCII.GetBytes("7c6e1257d0e81ff55bda80cc904365ae");
var btIV = Encoding.ASCII.GetBytes("cf5e4620455cd7190fcb53ede874f1a8");
aesAlg.Key = btKey;
aesAlg.IV = btIV;
aesAlg.Padding = PaddingMode.PKCS7;
// Create a decrytor to perform the stream transform.
var decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV);
// Create the streams used for decryption.
using (MemoryStream msDecrypt = new MemoryStream(encodedTicketAsBytes))
{
using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read)){
using (StreamReader srDecrypt = new StreamReader(csDecrypt))
{
// Read the decrypted bytes from the decrypting stream
// and place them in a string.
plainText = srDecrypt.ReadToEnd();
}
}
}
私が理解していないのは、aesAlg.Paddingの使用です。正直なところ、C#でのこの例を理解するには、まだ簡単なものを見つけることができませんでした。
何か助けはありますか?、
ありがとう!!