0

現在、次のコードがあります。

byte arrayハードコードされた random から を生成していstringます。

Rijndaelクラスを設定するときに、キー値を設定するときにアプリケーションがクラッシュすることに気付きました。キー値が設定されているときにクラッシュする理由に関する提案。

int olength = 18; 
string HKey = "ABCDEFGHIJKL111100002222"; //Some random string 
byte[] key = Convert.FromBase64String(HardcodedKey); //key.length = 18
byte[] iv = Encryption.GenerateRandomBytes(olength);
CryptoStream cs = Encryption.AES128Stream(key, iv, Context.Response.Body);

上記のメソッドが呼び出されると、以下のようになります

public static CryptoStream AES128Stream(byte[] key, byte[] iv, Stream stream)
{
    try
    {
        Rijndael rijndael = Rijndael.Create();
        rijndael.Mode = CipherMode.CBC;
        rijndael.Padding = PaddingMode.PKCS7;
        rijndael.KeySize = 128;
        rijndael.BlockSize = 128;
        rijndael.Key = key;  ///---->CRASHES HERE
        rijndael.IV = iv;

        ICryptoTransform rijndaelEncryptor = rijndael.CreateEncryptor();
        return new CryptoStream(stream, rijndaelEncryptor, CryptoStreamMode.Write);
    }
    catch (Exception e)
    {
        throw e;
    }
}

追加情報では、それは述べています

追加情報: 指定されたキーは、このアルゴリズムに対して有効なサイズではありません。

その場合、どの文字列を使用できますか? この文字列が機能しないのはなぜですか?

4

1 に答える 1