RC4加密解密java演算法
原文傳送門:http://www.hlovey.cn/2009/11/02/java-rc4.html
有一個專案,需要解析一個使用者提供的rc4加密後的檔案,特意搜尋整理了一個java 版本的RC4加解密演算法。
- public static String HloveyRC4(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;
- 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);
- }
加密和解密都用這一個方法。也就是說引數String aInput 可以傳一個明文,也可以傳一個加密後的字串,程式會自動的識別。然後執行加解密的響應操作。
使用例子如下:
- public static void main(String[] args) {
- String inputStr = "做個好男人";
- String key = "abcdefg";
- String str = HloveyRC4(inputStr,key);
- //列印加密後的字串
- System.out.println(str);
- //列印解密後的字串
- System.out.println(HloveyRC4(str,key));
- }
相關文章
- Java 常用加密解密演算法Java加密解密演算法
- RC4加密加密
- Java加密解密瞭解Java加密解密
- 加密解密演算法系列加密解密演算法
- Go 加密解密演算法總結Go加密解密演算法
- Java AES加密和解密教程 - BaeldungJava加密解密
- java書籍-《java加密解密的藝術》Java加密解密
- 加密解密加密解密
- C/C++ 常用加密與解密演算法C++加密解密演算法
- 使用Java加密與解密實現步驟Java加密解密
- PHP加密解密PHP加密解密
- js加密解密JS加密解密
- AES加密解密加密解密
- AES 加密&解密加密解密
- php mcrypt 加密 解密PHP加密解密
- Javascript 加密解密方法JavaScript加密解密
- AES CBC 加密解密加密解密
- RSA加密與解密加密解密
- JavaScript前端和Java後端的AES加密和解密JavaScript前端後端加密解密
- security.js RSA加密與java客戶端解密JS加密Java客戶端解密
- Java中Blowfish加密演算法Java加密演算法
- android加密解密完美教程Android加密解密
- 線上加密/解密工具加密解密
- 影像的加密與解密加密解密
- .NET Core加解密實戰系列之——對稱加密演算法解密加密演算法
- Java安全之安全加密演算法Java加密演算法
- RC4演算法:流密碼演算法的經典之作演算法密碼
- C#通過java生成的RSA公鑰加密和解密C#Java加密解密
- PHP Base64 加密 & 解密PHP加密解密
- php rsa長文加密解密PHP加密解密
- utf8 加密與解密加密解密
- Python AES 加密和解密(qbit)Python加密解密
- golang AES-CBC 加密解密Golang加密解密
- python AES-CBC 加密解密Python加密解密
- golang securecookie加密解密cookie值GolangCookie加密解密
- RSA 非對稱加密&解密加密解密
- 文字加密:常見的密碼加密解密方法加密密碼解密
- JavaScript實現線上MD5、SHA、AES、Rabit 、RC4、TripleDES Ripemd160 加密解密工具-toolfk程式設計師線上工具網JavaScript加密解密程式設計師
- Java中Blowfish加密演算法實現Java加密演算法