Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 加密不适用于所有字符_C#_Encryption - Fatal编程技术网

C# 加密不适用于所有字符

C# 加密不适用于所有字符,c#,encryption,C#,Encryption,我正在尝试加密数据(主要是文本文件和图像),在出现一些特殊字符(例如度字符°)之前,它工作正常。然后解密的文件具有此字符� 而不是真实的角色 目前,我正在使用Rijndael密码加密文件,如本网站所示: 我该如何更改它以使每个字符(以及使用文本编辑器打开图像时图像中的字符)都能正确解密 另外:这是加密数据,特别是图像的好方法吗?如果没有,请给我指出正确的方向,或者将我链接到解释它的帖子。这会使文件变大,但您可以先将文件转换为base64编码,然后再正确加密/解密。当然,很可能有更好的解决方案,

我正在尝试加密数据(主要是文本文件和图像),在出现一些特殊字符(例如度字符°)之前,它工作正常。然后解密的文件具有此字符� 而不是真实的角色

目前,我正在使用Rijndael密码加密文件,如本网站所示:

我该如何更改它以使每个字符(以及使用文本编辑器打开图像时图像中的字符)都能正确解密


另外:这是加密数据,特别是图像的好方法吗?如果没有,请给我指出正确的方向,或者将我链接到解释它的帖子。

这会使文件变大,但您可以先将文件转换为base64编码,然后再正确加密/解密。当然,很可能有更好的解决方案,但我以前从未遇到过您的问题。

显然,如果没有您使用的代码片段,就几乎不可能说出来。但是我猜在你解密之后,你会用错误的编码把它转换成字符串。因此,我建议您:

  • 提供代码片段
  • 检查加密的字节是否被解密为正确的字节(加密/解密这一个符号,可能是几个字节)
  • 在转换为字节并返回时,请验证编码是否相同

  • 图像不是由字符组成的,而是由字节组成的。如果在任何时候处理字符,都可能丢失数据。但是您没有向我们展示您正在使用的代码(除了CodeProject页面上的代码),因此很难帮助您。我使用的正是CodeProject上的代码。我不确定我是否应该将代码复制/粘贴到这里。你肯定用的不止这些,因为你必须调用这些方法——我怀疑这至少是问题的一部分。你把图像作为文本来阅读——你一定是这样,因为这些方法只处理文本——而图像根本不是文本。老实说,我根本不会使用那个代码……是的,我正在使用streamreader将图像作为文本读取。我遇到过一些图像密码,它们可以处理图像中的字节,但它们对我不起作用(可能是因为我用错了)。你有没有一些你会用到的例子给我?对,所以不要这样做
    StreamReader
    用于阅读文本,而这不是文本。你可以修改你已经得到的例子-只需删除将文本转换为二进制数据的位。但是在网络上有成百上千的C#加密的例子。