无法从字节转换为字符串

时间:2014-01-19 11:53:17

标签: c# encryption aes rijndael

我正在构建一个C#应用程序,它使用System.Security.Cryptography.Rijndael加密文本并在文本框中显示结果,以便接收方复制结果并使用相同的密钥对其进行解密。

当我将EncryptStringToBytes函数返回的byte []中的加密文本转换为可以在textBox中显示的字符串以便稍后复制和解密时,问题就出现了。

我使用了下面的转换方法,但没有一个能够显示可以在以后用于解密的有意义的字符串,并且可以重新转换为先前从EncryptStringToBytes返回的ORIGINAL字节形状。

以下是用于执行转换的方法:

从byte []转换为字符串,以便在textBox中显示:

textBox3.Text = Encoding.Default.GetString(encryptionResult)

从从textBox复制的字符串转换为byte [],以便作为参数发送到DecryptStringFromBytes以完成解密过程:

byte[] textToByte = Encoding.Default.GetBytes(textToDecrypt)

1 个答案:

答案 0 :(得分:5)

你应该在64encoding中尝试编码和解码。 使用转换类。

textBox3.Text =Convert.ToBase64String(encryptionResult)

byte[] textToByte = Convert.FromBase64String(textToDecrypt);

如果您仍想使用编码,请选择:

string decodedString = Encoding.UTF8.GetString(textToDecrypt);