У меня были проблемы, как у вас несколько лет назад. Вот мой код для декодирования строки запроса base64 в строку и наоборот
public static String DoDecryption(String Value)
{
Decryptor dec = new Decryptor(EncryptionAlgorithm.TripleDes );
dec.IV = Encoding.ASCII.GetBytes("funky");
byte [] DecValue = Convert.FromBase64String(Value.Replace("+++","=="));
byte [] DecKey = Encoding.ASCII.GetBytes("0123456789012345");
byte [] DecipherValue = dec.Decrypt(DecValue,DecKey);
return Encoding.ASCII.GetString(DecipherValue);
}
и вот часть шифрования
public static String DoEncryption(String Value)
{
Encryptor enc = new Encryptor(EncryptionAlgorithm.TripleDes);
byte [] EncValue = Encoding.ASCII.GetBytes(Value);
byte [] EncKey = Encoding.ASCII.GetBytes("0123456789012345");
enc.IV = Encoding.ASCII.GetBytes("funky");
byte [] CipherValue = enc.Encrypt(EncValue,EncKey);
//InitVector = Encoding.ASCII.GetString(enc.IV);
return Convert.ToBase64String(CipherValue).Replace("==","+++");
}
Обратите внимание, что параметр Value в DoEncryption - это строка, которую вы хотите зашифровать в строку запроса, а параметр value в DoDecryption - строка запроса, которая уже преобразуется в строку base64.
Надеюсь, это поможет