我正在构建一个 C# 应用程序,它使用 System.Security.Cryptography.Rijndael
加密文本并在文本框中显示结果,因此接收方复制结果并使用相同的 key 对其解密。
当我将 EncryptStringToBytes
函数返回的 byte[] 加密文本转换为可以显示在文本框中以便稍后复制和解密的字符串时,出现了问题。
我使用了以下转换方法,但没有一种方法能够显示有意义的字符串,该字符串以后可以用于解密,并且可以重新转换为先前从 EncryptStringToBytes
返回的原始字节形状.
以下是用于执行转换的方法:
为了在文本框中显示,将字节[]转换为字符串:
textBox3.Text = Encoding.Default.GetString(encryptionResult)
将从 textBox 复制的字符串转换为 byte[],以便作为参数发送到 DecryptStringFromBytes
以完成解密过程:
byte[] textToByte = Encoding.Default.GetBytes(textToDecrypt)
最佳答案
您应该尝试使用 64 位编码进行编码和解码。 使用转换类。
textBox3.Text =Convert.ToBase64String(encryptionResult)
byte[] textToByte = Convert.FromBase64String(textToDecrypt);
如果您仍想使用编码,请选择:
string decodedString = Encoding.UTF8.GetString(textToDecrypt);
关于c# - 无法从字节转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21216379/