Вы используете base-64 неправильно; base-64 переводит:
- вперед, произвольно
byte[]
до структурировано string
- задом наперед, структурированный
string
к исходному byte[]
И наоборот, обычное кодирование текста работает по-другому:
- вперед, произвольно
string
до структурировано byte[]
- назад, структурировано
byte[]
до оригинала string
Вы пытаетесь использовать base-64 для получения byte[]
от произвольного string
, что не то, что делает . Для этого вам понадобится обычная текстовая кодировка , такая как UTF-8. Попробуйте использовать Encoding.UTF8.GetBytes()
и т. Д. Вместо одна половина , а base-64 для другая :
public string Encrypt(string plainText)
{
byte[] byteData = Encoding.UTF8.GetBytes(plainText);
byte[] byteResult = Encrypt(byteData);
return Convert.ToBase64String(byteResult);
}
public string Decrypt(string cipherText)
{
byte[] byteData = Convert.FromBase64String(cipherText);
byte[] byteResult = Decrypt(byteData);
return Encoding.UTF8.GetString(byteResult);
}