首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java实现RC4算法,出现乱码有关问题,怎么解决

2012-01-20 
java实现RC4算法,出现乱码问题,如何解决?Java codepublic class Again {private String plaintextprivate

java实现RC4算法,出现乱码问题,如何解决?

Java code
public class Again {    private String plaintext;    private String ciphertext;    byte[] K = {0,7,0,9,0,3,0,1,2,2};    byte k;    private int[] S;    private int[] T;    public Again(){        S = new int[256];        T = new int[256];    }    public void initST(){        int size = this.K.length;        for(int i = 0;i<256;i++){            S[i] = i;            T[i] = K[i % size];        }        }    public void permS(){        int j = 0;        for(int i = 0;i < 256;i++){            j = (j + S[i] + T[i]) % 256;            int temp;            temp = S[j];            S[j] = S[i];            S[i] = temp;        }    }    public void encryp(){        int t,i = 0,j = 0;        byte b[] = this.plaintext.getBytes();        byte z[] = new byte[b.length];        for(int m = 0;m < b.length; m++){            i = (i + 1) % 256;            j = (j + 1) % 256;            int temp;            temp = S[j];            S[j] = S[i];            S[i] = temp;            t = (S[i] + S[j]) % 256;            System.out.println();            k = (byte) S[t];            z[m] = (byte) ((byte)b[m]^k);        }        this.ciphertext = new String(z);    }    public static void main(String[] args){        Again a = new Again();        a.plaintext = "你们好啊";        a.initST();        a.permS();        a.encryp();        System.out.println(a.plaintext);        System.out.println(a.ciphertext);    }}

此时console输出的密文是“溽笫萉”,
但是我把密文“溽笫萉”当做明文赋给a.plaintext 时,正确情况下应该输出“你们好啊”,
可是后台输出的是“你们好?”,不知道什么原因,输入其他汉字也大多是这样,解密过程不知道哪里除了问题,但是算法是和加密是一样的。

[解决办法]
探讨

啊,怎么没人回答这个问题啊!?

热点排行