我用于AES加密C#的密钥大小错误

问题描述

我正在尝试使用客户端提供的以下密钥来加密字符串

   public static string EncryptKey()
        {
            var word = "9999";
            var key = "Z1UbeuBT7Uu3SZinrq0vzuDVXBU5FbiKksopJswQGk81";
            var iv = "KUNd9fhw48li2WUZ";
            byte[] result = null;
            byte[] wordBytes = Encoding.UTF8.GetBytes(word);
            using (MemoryStream ms = new MemoryStream())
            {
                using (RijndaelManaged AES = new RijndaelManaged())
                {
                    AES.Key = Convert.FromBase64String(key);
                    AES.IV = Encoding.UTF8.GetBytes(iv);

                    using (var cs = new CryptoStream(ms,AES.CreateEncryptor(),CryptoStreamMode.Write))
                    {
                        cs.Write(wordBytes,wordBytes.Length);
                        cs.Close();
                    }
                    byte[] encryptedBytes = ms.ToArray();
                    result = encryptedBytes;
                    return Convert.ToBase64String(result);
                }
            }
        }

但是我得到一个错误

System.Security.Cryptography.CryptographicException:'指定的密钥对此算法无效。

客户端一直在使用此密钥。

我在做什么错了?

解决方法

我的客户使用

HttpServerUtility.UrlTokenDecode(string input);

用于解码base64字符串。

希望这对以后的人有帮助。