我正在构建一个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)
答案 0 :(得分:5)
你应该在64encoding中尝试编码和解码。 使用转换类。
textBox3.Text =Convert.ToBase64String(encryptionResult)
byte[] textToByte = Convert.FromBase64String(textToDecrypt);
如果您仍想使用编码,请选择:
string decodedString = Encoding.UTF8.GetString(textToDecrypt);