C# 解密AES-128-ECB文本时结果不正确

C# 解密AES-128-ECB文本时结果不正确,c#,encryption,aes,encryption-symmetric,ecb,C#,Encryption,Aes,Encryption Symmetric,Ecb,我有一段Base64文本,我知道它是在AES-128-ECB模式下加密的,甚至知道密钥(YELLOW subside,16字节)。我使用下面的代码来解密它 textbox1包含密码文本 textbox2包含密钥 private void button6_Click(object sender, EventArgs e) { Byte[] CTBytes = System.Convert.FromBase64String(textBox1.Text);

我有一段
Base64
文本,我知道它是在
AES-128-ECB模式下加密的,甚至知道密钥(
YELLOW subside
,16字节)。我使用下面的代码来解密它

textbox1
包含密码文本

textbox2
包含密钥

    private void button6_Click(object sender, EventArgs e)
    {
        Byte[] CTBytes = System.Convert.FromBase64String(textBox1.Text);            
        Byte[] KeyBytes = new Byte[textBox2.TextLength];
        string Key = textBox2.Text;
        Aes Decryptor = Aes.Create();
        Decryptor.Mode = CipherMode.ECB;
        Decryptor.BlockSize = 128;
        for (int iCounter = 0; iCounter < textBox2.Text.Length; iCounter++)            
            KeyBytes[iCounter] = Convert.ToByte(textBox2.Text[iCounter]);          
        Decryptor.KeySize = KeyBytes.Length * 8;
        Decryptor.Key = KeyBytes;            
        Decryptor.Padding = PaddingMode.None;
        ICryptoTransform Decr = Decryptor.CreateDecryptor();
        Byte[] plainText = null;
                    using (MemoryStream ms = new MemoryStream())
        {
            using (CryptoStream cs = new CryptoStream(ms, Decr, CryptoStreamMode.Write))
            {
                cs.Write(CTBytes, 0, CTBytes.Length);
            }

            plainText = ms.ToArray();
        }                        
        string s = System.Text.Encoding.ASCII.GetString(plainText);
        textBox3.Text = s;
        string s1 = System.Text.Encoding.Unicode.GetString(plainText);
        textBox2.Text = s1;
    }

您是否尝试过对密钥进行ASCII编码?请注意,键通常永远不会是字符串。如果这是一个教程,它很好地解释了目前如何不进行加密(ECB、无填充、密钥字符串等)<代码>“黄色潜水艇”
是16个字符,不一定是16个字节,如果我没有弄错的话,C#使用16位小尾端编码作为字符。请发布64位文本以检查我的答案是否正确。。。希望我的Mono开发人员能够浏览源代码。因此,请创建一个单独的方法来执行解密,而不是将其全部放在GUI类中。是的,这是一个教程。我不确定我是否理解“ASCII编码”的含义。这不是和我做的一样吗?还有一个任务是检测一个在包含100多个字符串的文件中加密的字符串。我在这一点上也遇到了麻烦,因为仅仅按照任务书中的建议寻找相同的子字符串并不能带来任何好处。我的意思是
Byte[]KeyBytes=System.Text.Encoding.ASCII.GetBytes(“黄色潜艇”)
U2FsdGVkX1+V1HkNnBtngUKxuppRFBa0cxtj5jwMcQsgxA+WdPK2JtNCHIyJ4xyj
TABANu/jEXSigEG8NiVczGSkWipGV1rVT3+QmrQAAToAm68BR9ldVHG2IUpwN20s
rKi6bcSNKk7+w9YoSrkO8eX9JEiBvgAUxNrdShY/K7BUFKkwr0y/kJAo9w2wy9vA
7RjUKggwe3DSm/OIrs+yOTUGo0lla0PdF9jwsOraVX6HeAFT8bfAaKFGXqKgzYKZ
KfAoP4qQdg2qWH1FohCsxTMPg6VpjSZo5c21RubgBm3pwdIHibhapFv+9xkgCt6C
y4LL2iaBc+WzCjezYPvXD3GGJjhI1dtDWs9ihoGLh6EBe9Nj9A8Aoi2U2jcNrbkD
PPtYR1vwsYurt20YPqOAUxdytquANgHXQPs74M4MLoHkjmZALQ2TFVFUb4tZXpEe
U7Dv/3uJkz1Exnmona4D4pdrlEgALqPftmUaC7EDWLa9WGPYeYPO0ktD9uEBiATS
HZM7i6erQgVdh1zsNPa4+vhOdSf5EdOW3MrXFMqns/M6foO3tA60JDBhDzwdmzTq
HEgaSPNU6rbhEtUcdzOoPwT5zw5mJr01Y46CRliNz2Hbg/Q+no5sPdolJBO6VL/v
FHf29rkPv0r/yIm4jTCtgzJRTJ0twWl0WvsSWh8E11AQh7rrAq+5aUMr5+CfZq5E
/nGEM5e9rx/oMZ68T6Rwz9oXE+kJazUt5ipj/ccu1P/HlCcRHXa2tt7o+tS+koN4
F60UdRm4ExoeWKRhpD93Xlf22GFKST8abA/cRjFSLwiB+oI0vZLXQ6FFz2F9Iogl
eXxjIx7JUpOsYYxgnUzznffzMT33p5GivXWE91LU7sptRtSDpmrn1UUhjE+KkFGi
hAOAjMzqG7Oos5V1h8SQaBug2yk4H2GX9SkBtLul6YU=