During decoding, you could first get the string equivalent of the base64 string, then read the utf8 bytes of the string then decode it and convert it back to string. Something like:
...
using System.Text;
...
public string Decrypt(string password)
{
try
{
string temp = Convert.FromBase64String(password);
byte[] decryped = Encoding.UTF8.GetBytes(temp)
return (string)decrypted;
}
catch { ... }
...
}