C# 加密Base64+;异或+;JAVA中的UTF8,C中的解密#

C# 加密Base64+;异或+;JAVA中的UTF8,C中的解密#,c#,java,base64,C#,Java,Base64,我有一个简单的加密函数,它接受字符串,将其转换为字节,对其进行异或,并应用base64 爪哇: String key=“1234”; 公共字符串加密(字符串明文)引发异常{ 字节[]输入=纯文本.getBytes(“UTF8”); 字节[]输出=新字节[input.length]; 对于(int i=0;i这就是问题所在: String utf8 = new String(output); return Utils.encode(utf8); 您应该在输出上使用base64,而不是用现在不是

我有一个简单的加密函数,它接受字符串,将其转换为字节,对其进行异或,并应用base64

爪哇:

String key=“1234”;
公共字符串加密(字符串明文)引发异常{
字节[]输入=纯文本.getBytes(“UTF8”);
字节[]输出=新字节[input.length];
对于(int i=0;i这就是问题所在:

String utf8 = new String(output);
return Utils.encode(utf8); 
您应该在
输出上使用base64,而不是用现在不是真正的文本数据构造字符串。
Utils.encode
可能会执行base64编码,出于某种原因将输入字符串转换回字节-但基本上您不应该用加密的字节构造字符串使用
字符串
构造函数

如果您的
Utils
类有一个
encode(byte[])
方法,并且如果它确实对数据进行了base64编码(仅使用一半的代码非常令人沮丧),那么您可以使用:

return Utils.encode(output);

你完全正确。现在我意识到了这个问题。非常感谢你,很抱歉提供了部分代码。我想让它尽可能简单,但我忽略了base64编码方法。再次感谢你。
String utf8 = new String(output);
return Utils.encode(utf8); 
return Utils.encode(output);