java RC4 加密

2013/11/05 15:46
阅读数 643

/*方法体/

   public static String RC4(String aInput,String aKey) { 
    int[] iS = new int[256]; 
    byte[] iK = new byte[256]; 
    
    for (int i=0;i<256;i++) 
        iS[i]=i; 
        
    //int j = 1; 
    
    for (short i= 0;i<256;i++) 
    { 
        iK[i]=(byte)aKey.charAt((i % aKey.length())); 
    } 
    
    int j=0; 
    
    for (int i=0;i<255;i++) 
    { 
        j=(j+iS[i]+iK[i]) % 256; 
        int temp = iS[i]; 
        iS[i]=iS[j]; 
        iS[j]=temp; 
    } 


    int i=0; 
    j=0; 
    char[] iInputChar = aInput.toCharArray(); 
    char[] iOutputChar = new char[iInputChar.length]; 
    for(short x = 0;x<iInputChar.length;x++) 
    { 
        i = (i+1) % 256; 
        j = (j+iS[i]) % 256; 
        int temp = iS[i]; 
        iS[i]=iS[j]; 
        iS[j]=temp; 
        int t = (iS[i]+(iS[j] % 256)) % 256; 
        int iY = iS[t]; 
        char iCY = (char)iY; 
        iOutputChar[x] =(char)( iInputChar[x] ^ iCY) ;    
    } 
    
    return new String(iOutputChar); 
            
}
展开阅读全文
0 评论
0 收藏
0
分享
返回顶部
顶部