招财app safejson的加密解密算法,翻译到易语言,比较简单的app,希望能给网友们一点参考经验
首先定位safejson加密代码处:
随便搜一下就找到算法SafeEncode类
C:\Users\Administrator\Desktop\kjkj.zhaocai.wealth_3.2.5_46.jar!\kjkj\zhaocai\wealth\object\SafeEncode.class我就在下面一句一句的翻译了,(日了狗,第一次发布后,下面的java代码及翻译都消失了.....又得重新写...)
public class SafeEncode
{
private static String key = "hopeandhonour";
private static String md5Key = MD5.getCodeMd5(key); //也就是1e0a5bda50655454cd41359411eee0ee
//解密算法
public static String decodeZhaocai(String paramString)
throws IOException
{//将参数进行base64解码
byte[] arrayOfByte1 = Base64.decode(paramString.getBytes("UTF-8"));
//将md5key转换成字节数组
byte[] arrayOfByte2 = md5Key.getBytes("UTF-8");
int i = arrayOfByte2.length;
//创建一个新的字节数组,长度和参数base64解码后的一样
byte[] arrayOfByte3 = new byte[arrayOfByte1.length];
int j = arrayOfByte1.length;
//遍历arrayOfByte1
for (int k = 0;; k++)
{
if (k >= j) { //如果遍历完arrayOfByte1的所有字节
//将arrayOfByte3转换成字符串返回
return new String(arrayOfByte3, 0, arrayOfByte3.length);
}
//将参数base64解密后的字节 减去 md5Key的字节 k为0-参数base64解密后的字节长度 i为 md5Key的长度32 k%i 也就是0-31 一直到遍历完
arrayOfByte3[k] = ((byte)(arrayOfByte1[k] - arrayOfByte2[(k % i)]));
}
}
//加密算法
public static String encodeZhaocai(String paramString)
{
try
{
//将参数转换为字节数组
byte[] arrayOfByte1 = paramString.getBytes("UTF-8");
byte[] arrayOfByte2 = md5Key.getBytes("UTF-8");
int i = arrayOfByte2.length;
int j = arrayOfByte1.length;
byte[] arrayOfByte3 = new byte[j];
String str;
//遍历参数所有字节
for (int k = 0;; k++)
{
if (k >= j) //如果遍历完参数所有字节
{
//将加完后的字节数组进行base64编码
byte[] arrayOfByte4 = Base64.encodebyte(arrayOfByte3);
str = new String(arrayOfByte4, 0, arrayOfByte4.length);
break;
}
//将参数的每一个字节加上md5Key所对应的字节 和上面解密是一样的 一个是b64完减去key 一个是加上key后b64
arrayOfByte3[k] = ((byte)(arrayOfByte1[k] + arrayOfByte2[(k % i)]));
}
return str;
}
catch (UnsupportedEncodingException localUnsupportedEncodingException)
{
localUnsupportedEncodingException.printStackTrace();
str = "";
}
}
}
像对应的易语言代码,我就不放源代码了,免得别有用心的人直接拿去了,,只截图了加密,有需要的或者是练习的,自己照着写解密算法,发帖只为帮助新手
发表评论: