我已经使用java编写了以下十六进制XORing 2密码文本的程序。如何将输出转换为ASCII码

我已经使用java编写了以下十六进制XORing 2密码文本的程序。如何将输出转换为ASCII码,java,hex,xor,Java,Hex,Xor,我已经使用java编写了以下十六进制XORing 2密码文本的程序。但是输出是不正确的。另外,如何将输出转换为ASCII格式 public class JavaApplication1 { public static void main(String[] args) { String y="a12104c6134e57914f104f2521ba4422c4d7b184f4815541f80484e1e24161d64d54ba2210194510164d4f

我已经使用java编写了以下十六进制XORing 2密码文本的程序。但是输出是不正确的。另外,如何将输出转换为ASCII格式

public class JavaApplication1 {          
    public static void main(String[] args) {
    String y="a12104c6134e57914f104f2521ba4422c4d7b184f4815541f80484e1e24161d64d54ba2210194510164d4f3a0534304e43e1e1da524612171b11701be45431cc1d16a52d11744e1961a114de55174f84e54371";
    String z="32510ba9babebbbefd001547a810e67149caee11d945cd7fc81a05e9f85aac650e9052ba6a8cd8257bf14d13e6f0a803b54fde9e77472dbff89d71b57bddef121336cb85ccb8f3315f4b52e301d16e9f52f904";
    String d;    
    String s="a";    
    char strfory[] = new char[2];   
    char strforz[] = new char[2];   
    String stry,strz;   
    for(int i=0; i<y.length();i+=2)    
    {
        strfory[0]=y.charAt(i);
        strfory[1]=y.charAt(i+1);
        strforz[0]=z.charAt(i);
        strforz[1]=z.charAt(i+1);
        stry = new String(strfory);
        strz = new String(strforz);
        int a=Integer.parseInt(stry,16);
        int b=Integer.parseInt(strz,16);
        int c=a^b;
        d=Integer.toHexString(c);
        s=s.concat(d);
    }
    System.out.println(s);
    }
}
公共类JavaApplication1{
公共静态void main(字符串[]args){
字符串y=“A12104C6134E57914F104F2521BA4422C4D7B184F4815541F80484E1E24161D64D54BA2210194510164D4F3A0534304E43E1DA524612171B11701BE454331CC1D16A52D17444E1961A114DE55174F84E54371”;
字符串z=“32510BA9BABEBBBEFD001547A810E67149CAEE11D945CD7FC81A05E9F85AAC650E9052BA6A8CD8257BF14D13E6F0A803B54FDE9E772DBF89D71B57DDEF121336CB85CCB8F3315F4B52E301E9F52F52F52F52F904”;
字符串d;
字符串s=“a”;
char strfory[]=新字符[2];
char strforz[]=新字符[2];
字符串stry,strz;

对于(inti=0;i尝试使用
java.math.biginger

import java.io.UnsupportedEncodingException;
import java.math.BigInteger;
import java.util.Arrays;

class Example {

    private static final int VALUES_RADIX = 16;
    private static final String FIRST_VALUE = "a12104c6134e57914f104f2521ba4422c4d7b184f4815541f80484e1e24161d64d54ba2210194510164d4f3a0534304e43e1e1da524612171b11701be45431cc1d16a52d11744e1961a114de55174f84e54371";
    private static final String SECOND_VALUE = "32510ba9babebbbefd001547a810e67149caee11d945cd7fc81a05e9f85aac650e9052ba6a8cd8257bf14d13e6f0a803b54fde9e77472dbff89d71b57bddef121336cb85ccb8f3315f4b52e301d16e9f52f904";

    public static void main(String[] args) {
        BigInteger firstValueToXor = new BigInteger(FIRST_VALUE, VALUES_RADIX);
        BigInteger secondValueToXor = new BigInteger(SECOND_VALUE, VALUES_RADIX);
        BigInteger result = firstValueToXor.xor(secondValueToXor);
        String stringResultRepresentation = result.toString(VALUES_RADIX);
        System.out.println(stringResultRepresentation);

        try {
            byte[] asciiResultRepresentation = stringResultRepresentation.getBytes("US-ASCII");
            System.out.println(Arrays.toString(asciiResultRepresentation));
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }
}

您没有告诉我您想要实现什么。您没有告诉我输出有什么问题。您没有告诉我您正在使用什么XOR加密。“代码有什么问题?”这不是一个关于SO的问题!@AbdulFatir我在标题中提到了这一点。我想用java对2个十六进制密码文本进行异或运算。我已经编写了上面的代码来实现这一点。我想将输出转换为ascii,那么我该怎么做呢?编辑这个问题并添加一个您想要的示例输出,以便我可以研究这个问题。有多种类型的X或者加密,所以你需要解释你想做什么。我如何将输出转换为ASCII?@ayushgp我已经修正了我的答案。