JAVA有关于异或加密的问题

1,问题类型:JAVA.字符串.异或加密
2,具体:我针对该题目进行编程,但报错,请问该如何改进以解决
题目:

img


我的代码:
(我编到“借助异或将原文加密:”就报错了)

img

报错图:

img

128位的位串超过了int的取值范围把,使用数组保存试试,修改如下:


public class homework2 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        String a = "";
        String word = "特急,明天会餐取消!";
        char [] WORD = word.toCharArray();
        for(int i=0;i<WORD.length;i++) {
            a+=Integer.toBinaryString(WORD[i]);
        }
        
        String b = "";
        String key = "一共需要八个汉字";
        char [] KEY = key.toCharArray();
        for(int i=0;i<KEY.length;i++) {
            b+=Integer.toBinaryString(KEY[i]);
        }
        
        // 加密
        char [] ci = new char[WORD.length] ;
        int i=0;
        while(i<WORD.length) {
            
            if(i<KEY.length) {
                ci[i] = (char)(WORD[i]^KEY[i]);
            }else {
                ci[i] = (char)(WORD[i]^0);    
            }
            i++;
        }
        String ciphertext = String.valueOf(ci);
        System.out.println(ciphertext);
        
        
        char [] result = new char[ci.length] ;
        i=0;
        while(i<ci.length) {
            
            if(i<KEY.length) {
                result[i] = (char)(ci[i]^KEY[i]);
            }else {
                result[i] = (char)(ci[i]^0);    
            }
            i++;
        }
        
        System.out.println(result);
        
        
//        String ciphertext = String.valueOf(Integer.parseInt(a)^Integer.parseInt(b));
//        System.out.println(ciphertext);
        
        
    }

}