Base64加密 - 无效的Base64字符串

时间:2013-02-07 18:03:38

标签: c# base64

我有以下代码

问题是当我尝试运行时会引发异常并打印出来:

  

entry不是有效的base64字符串,因为它包含的字符不是base 64

这是代码:

    private static string Encrypt(string plainStr, string completeEncodedKey, int keySize)
    {
        Console.WriteLine("Entro Encrypt");
        RijndaelManaged aesEncryption = new RijndaelManaged();
        aesEncryption.KeySize = keySize;
        aesEncryption.BlockSize = 128;
        aesEncryption.Mode = CipherMode.CBC;
        aesEncryption.Padding = PaddingMode.PKCS7;
        Console.WriteLine(completeEncodedKey);
        aesEncryption.IV = Convert.FromBase64String(ASCIIEncoding.UTF8.GetString(Convert.FromBase64String(completeEncodedKey)).Split(',')[0]);
        aesEncryption.Key = Convert.FromBase64String(ASCIIEncoding.UTF8.GetString(Convert.FromBase64String(completeEncodedKey)).Split(',')[1]);
        byte[] plainText = ASCIIEncoding.UTF8.GetBytes(plainStr);
        ICryptoTransform crypto = aesEncryption.CreateEncryptor();
        Console.WriteLine("Abajo de crypto");
        // The result of the encryption and decryption            
        byte[] cipherText = crypto.TransformFinalBlock(plainText, 0, plainText.Length);
        return Convert.ToBase64String(cipherText);
    }

这是Stacktrace:

en System.Convert.FromBase64String(String s)  
en cryptograph.Cryptography.Encrypt(String plainStr, String completeEncodedKey,
        Int32 keySize)  
en C:\programacion\cryptograph\cryptograph\cryptograph\Cryptography.cs:línea 65  
en cryptograph.Cryptography.generateKey(String key, String pass)  
en C:\programacion\cryptograph\cryptograph\cryptograph\Cryptography.cs:línea 13  
en cryptograph.cryptograph.Main(String[] args)  
en C:\programacion\cryptograph\cryptograph\cryptograph\cryptograph.cs:línea 21  

编辑:completeEncodedKey是一个随机字符串,例如“AAAA”或其他内容。我知道它的长度必须是四的倍数

0 个答案:

没有答案
相关问题