【发布时间】:2014-01-19 11:53:16
【问题描述】:
我正在构建一个 C# 应用程序,它使用 System.Security.Cryptography.Rijndael 在文本框中加密文本并显示结果,以便接收者复制结果并使用相同的密钥对其进行解密。
当我将加密文本从EncryptStringToBytes 函数返回的 byte[] 转换为可以显示在 textBox 中以便以后复制和解密的字符串时,就会出现问题。
我使用了以下转换方法,但没有一个能够显示有意义的字符串,该字符串可以稍后用于解密,并且可以重新转换为之前从 EncryptStringToBytes 返回的原始字节形状。
以下是用于执行转换的方法:
从 byte[] 转换为字符串以便在文本框中显示:
textBox3.Text = Encoding.Default.GetString(encryptionResult)
将从 textBox 复制的字符串转换为 byte[] 以便作为参数发送到 DecryptStringFromBytes 以完成解密过程:
byte[] textToByte = Encoding.Default.GetBytes(textToDecrypt)
【问题讨论】:
-
从任何二进制序列中获取有意义文本的最简单方法是使用"hexstring",即“87160a20a03daec4adc1934”等。如果您使用编码器来获取实际文本,则会遇到无法轻松表示的二进制序列的问题。
标签: c# encryption aes rijndael