需要帮助转换c# XOR到Java
本文关键字:XOR Java 转换 帮助 | 更新日期: 2023-09-27 18:19:20
一个已经离开的开发人员创建了一个小日志混淆程序,我需要将其转换为java。
所有的字符项都被截断了255,这是去混淆代码片段
char[] array = text.ToCharArray();
for (int i = 0; i < array.Length; i++){
char @string = array[i];
text2 += Conversions.ToString(Strings.Chr(Strings.Asc(@string) ^ 255));
}
streamWriter.WriteLine(text2);
我需要将这个Conversions.ToString(Strings.Chr(Strings.Asc(@string) ^ 255));
从c#转换为java。问题是,在java中,如果ascii字符> 255,似乎不能正确解码字符。下面是一个例子:
String e = "ÃÎÌËÁßÍÏÎÌÐÏÉÐÎÌßÎÊÒÌÈÒÌÇßÓœž“ÏÑ–‘™Áß‘ŠÎÏÈÈËÑ‘ŠŒ–šÑœ’ß™ÅßÏÌÌÉ";
String sOut1 = "";
String sOut2 = "'";
char[] cArray = e.toCharArray();
for(int index = 0; index < cArray.length; index++){
int before = ((int) cArray[index]);
int after = before ^ 255;
char s = ((char) after);
sOut1 += cArray[index];
sOut2 += Character.toString(s);
System.out.println( "1: " + cArray[index] +
" 2: " + Integer.toString(before) +
" 3: " + Integer.toString(after) +
" 4: " + Character.toString(s)
);
}
System.out.println(sOut1);
System.out.println(sOut2);
下面是我的java代码的输出:
ÃÎÌËÁßÍÏÎÌÐÏÉÐÎÌßÎÊÒÌÈÒÌÇßÓœž“ÏÑ–‘™Áß‘ŠÎÏÈÈËÑ‘ŠŒ–šÑœ’ß™ÅßÏÌÌÉ
'<134> 2013/06/13 15-37-38 <oƬƁ⃬⃧⇝o>⃧Ɵ10774。⃧Ɵƭp⃬rƞ。Ƭo⃦p⇝
感谢您的协助和给予的任何帮助。
尝试只获取Java char的低8位。你可以通过屏蔽:
char tmp&=255;
或者使用模数运算符来屏蔽它:
char tmp=tmp%255;