Base64(四)
来源:互联网 发布:linux oracle服务重启 编辑:程序博客网 时间:2024/05/16 18:39
/** * Created by y0n on 2017/4/21. */public class JavaCrackMe04 { private static char[] key = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".toCharArray(); public static char[] encode(byte[] var0) { char[] var1 = new char[(var0.length + 2) / 3 << 2]; int var2 = 0; for(int var3 = 0; var2 < var0.length; var3 += 4) { boolean var4 = false; boolean var5 = false; int var6 = (var6 = 255 & var0[var2]) << 8; if(var2 + 1 < var0.length) { var6 |= 255 & var0[var2 + 1]; var5 = true; } var6 <<= 8; if(var2 + 2 < var0.length) { var6 |= 255 & var0[var2 + 2]; var4 = true; } var1[var3 + 3] = key[var4?var6 & 63:64]; var6 >>= 6; var1[var3 + 2] = key[var5?var6 & 63:64]; var6 >>= 6; var1[var3 + 1] = key[var6 & 63]; var6 >>= 6; var1[var3] = key[var6 & 63]; var2 += 3; } return var1; } public static char[] DeCode(byte[] cipherText) { char[] var1 = new char[(cipherText.length + 2) / 4 << 2]; int var2 = 0; int []tempj = new int[20]; for(int var3 = 0; var2 < cipherText.length; var3 += 3) { boolean var4 = false; boolean var5 = false; //boolean var7 = false; for (int i =0; i < cipherText.length; i++) { for (int j = 0; j < 64; j++) if (cipherText[i] == key[j]) { tempj[i] = j; break; } } int var6 = (var6 = 63 & tempj[var2]) << 6; if(var2 + 1 < cipherText.length) { var6 |= 63 & tempj[var2 + 1]; var5 = true; } var6 <<= 6; if(var2 + 2 < cipherText.length) { var6 |= 63 & tempj[var2 + 2]; var4 = true; } var6 <<= 6; if(var2 + 3 < cipherText.length) { var6 |= 63 & tempj[var2 + 3]; // var7 = true; } var1[var3 + 2] = (char)(var6 & 255);//key[var4?var6 & 255:64]; var6 >>= 8; var1[var3 + 1] = (char)(var6 & 255);//key[var5?var6 & 255:64]; var6 >>= 8; var1[var3] = (char)(var6); var2 += 4; } return var1; } public static void main(String []args) { char[] a = encode("y0n".getBytes()); System.out.print("密文:"); for (int i = 0; i < a.length; i++) System.out.print(a[i]); System.out.println(); char[] b = DeCode("eTBu".getBytes()); System.out.print("明文:"); for (int i = 0; i < b.length; i++) System.out.print(b[i]); }}
阅读全文
0 0
- Base64(四)
- Base64编码--从原理上搞定编码(四)-- Base64编码
- 编写ATL工程实现ActiveX控件调用cryptoAPI接口(四)------------Base64转码
- 编写ATL工程实现ActiveX控件调用cryptoAPI接口(四)------------Base64转码
- Base64编码(1)
- Md5(base64)
- hdu5237 Base64(模拟)
- base64
- BASE64
- Base64
- BASE64
- Base64
- Base64
- base64
- base64
- base64
- base64
- base64
- 4881: [Lydsy2017年5月月赛]线段游戏
- Node.js http.request()返回响应出现乱码的解决方案
- 数据库优化——备份与恢复
- org.json.JSONException: No value for
- 将字符串转换为float类型
- Base64(四)
- HDU 1202 The calculation of GPA
- HDU1532(最大流EK算法模板题)
- LeetCode:553. Optimal Division
- HTML5 WebStorage
- 运算符/注释
- Proxy——代理模式
- JDK-jre
- EA&UML日拱一卒--序列图(Sequence Diagram)::并行和临界区