rc4_test2.java

来自「rc4加密算法的一个实现」· Java 代码 · 共 117 行

JAVA
117
字号
import java.io.*;
public class rc4_test2 {




		public static void main(String[] args)

		{		

			String aInput = "Fuck you fuck fuck fuck";

			String aKey = "shitdsgdsfgdsgsdfgsdfg";

			//System.out.println(new Integer(aKey));
            String output=RunRC4(aInput,aKey);
			System.out.println(output);

			System.out.println(RunRC4(output,""));

		}

		

		public static String RunRC4(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()));

			}

			

			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;

			String rOutput="";

			short iMask = 15;

			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);				

		}


}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?