C# 加密不适用于所有字符
我正在尝试加密数据(主要是文本文件和图像),在出现一些特殊字符(例如度字符°)之前,它工作正常。然后解密的文件具有此字符� 而不是真实的角色 目前,我正在使用Rijndael密码加密文件,如本网站所示: 我该如何更改它以使每个字符(以及使用文本编辑器打开图像时图像中的字符)都能正确解密C# 加密不适用于所有字符,c#,encryption,C#,Encryption,我正在尝试加密数据(主要是文本文件和图像),在出现一些特殊字符(例如度字符°)之前,它工作正常。然后解密的文件具有此字符� 而不是真实的角色 目前,我正在使用Rijndael密码加密文件,如本网站所示: 我该如何更改它以使每个字符(以及使用文本编辑器打开图像时图像中的字符)都能正确解密 另外:这是加密数据,特别是图像的好方法吗?如果没有,请给我指出正确的方向,或者将我链接到解释它的帖子。这会使文件变大,但您可以先将文件转换为base64编码,然后再正确加密/解密。当然,很可能有更好的解决方案,
另外:这是加密数据,特别是图像的好方法吗?如果没有,请给我指出正确的方向,或者将我链接到解释它的帖子。这会使文件变大,但您可以先将文件转换为base64编码,然后再正确加密/解密。当然,很可能有更好的解决方案,但我以前从未遇到过您的问题。显然,如果没有您使用的代码片段,就几乎不可能说出来。但是我猜在你解密之后,你会用错误的编码把它转换成字符串。因此,我建议您:
图像不是由字符组成的,而是由字节组成的。如果在任何时候处理字符,都可能丢失数据。但是您没有向我们展示您正在使用的代码(除了CodeProject页面上的代码),因此很难帮助您。我使用的正是CodeProject上的代码。我不确定我是否应该将代码复制/粘贴到这里。你肯定用的不止这些,因为你必须调用这些方法——我怀疑这至少是问题的一部分。你把图像作为文本来阅读——你一定是这样,因为这些方法只处理文本——而图像根本不是文本。老实说,我根本不会使用那个代码……是的,我正在使用streamreader将图像作为文本读取。我遇到过一些图像密码,它们可以处理图像中的字节,但它们对我不起作用(可能是因为我用错了)。你有没有一些你会用到的例子给我?对,所以不要这样做
StreamReader
用于阅读文本,而这不是文本。你可以修改你已经得到的例子-只需删除将文本转换为二进制数据的位。但是在网络上有成百上千的C#加密的例子。