精易论坛
标题:
【翻译起点读书 JAVA base64 源码】与正规算法不一样哦
[打印本页]
作者:
xx90
时间:
2019-6-22 12:07
标题:
【翻译起点读书 JAVA base64 源码】与正规算法不一样哦
本帖最后由 xx90 于 2019-6-22 12:27 编辑
public class mybase64
{
private static char sets[] = {
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd',
'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x',
'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', '+', '/'
};
public static String encode(byte arg8[])
{
StringBuffer v1 = new StringBuffer();
int v2 = arg8.length;
int v0 = 0;
do
{
if (v0 >= v2)
break;
int v3 = v0 + 1;
int v4 = arg8[v0] & 0xff;
if (v3 == v2)
{
v1.append(sets[v4 >>> 2]);
v1.append(sets[(v4 & 3) << 4]);
v1.append("==");
break;
}
int v5 = v3 + 1;
v3 = arg8[v3] & 0xff;
if (v5 == v2)
{
v1.append(sets[v4 >>> 2]);
v1.append(sets[(v4 & 3) << 4 | (v3 & 0xf0) >>> 4]);
v1.append(sets[(v3 & 0xf) << 2]);
v1.append("=");
break;
}
v0 = v5 + 1;
v5 = arg8[v5] & 0xff;
v1.append(sets[v4 >>> 2]);
v1.append(sets[(v4 & 3) << 4 | (v3 & 0xf0) >>> 4]);
v1.append(sets[(v3 & 0xf) << 2 | (v5 & 0xc0) >>> 6]);
v1.append(sets[v5 & 0x3f]);
} while (true);
return v1.toString();
}
}
复制代码
package com.yuewen.ywlogin;
public class d {
private static final char[] a;
static {
d.a = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".toCharArray();
}
public static String a(byte[] arg9) {
int v4 = arg9.length;
StringBuilder v5 = new StringBuilder(arg9.length * 3 / 2);
int v6 = v4 - 3;
int v2 = 0;
int v0;
for(v0 = 0; v0 <= v6; v0 = v3) {
int v3 = (arg9[v0] & 0xFF) << 16 | (arg9[v0 + 1] & 0xFF) << 8 | arg9[v0 + 2] & 0xFF;
v5.append(d.a[v3 >> 18 & 0x3F]);
v5.append(d.a[v3 >> 12 & 0x3F]);
v5.append(d.a[v3 >> 6 & 0x3F]);
v5.append(d.a[v3 & 0x3F]);
v3 = v0 + 3;
v0 = v2 + 1;
if(v2 >= 14) {
v5.append(" ");
v0 = 0;
}
v2 = v0;
}
if(v0 == -2 + v4) {
v0 = (arg9[v0 + 1] & 0xFF) << 8 | (arg9[v0] & 0xFF) << 16;
v5.append(d.a[v0 >> 18 & 0x3F]);
v5.append(d.a[v0 >> 12 & 0x3F]);
v5.append(d.a[v0 >> 6 & 0x3F]);
v5.append("=");
}
else if(v0 == -1 + v4) {
v0 = (arg9[v0] & 0xFF) << 16;
v5.append(d.a[v0 >> 18 & 0x3F]);
v5.append(d.a[v0 >> 12 & 0x3F]);
v5.append("==");
}
return v5.toString();
}
}
复制代码
作者:
全村最帅
时间:
2019-6-22 13:27
这舒适有点剑走偏锋的味道
作者:
leiwawa001
时间:
2019-6-22 13:58
看看,有点意思
作者:
lolwind
时间:
2019-6-22 14:20
这舒适有点剑走偏锋的味道
作者:
零碎不堪
时间:
2019-6-22 14:39
看一下有什么区别
作者:
cnxmal
时间:
2019-6-22 22:47
这舒适有点剑走偏锋的味道
作者:
King丶枫岚
时间:
2019-6-23 01:47
这个有什么用
作者:
529512527
时间:
2019-6-23 18:38
支持一下谢谢???
作者:
529512527
时间:
2019-6-23 18:48
只有MyBase64编码 没有解码
作者:
格视化
时间:
2019-6-25 04:56
学习一下啊
作者:
shuashen
时间:
2019-6-28 00:19
万分感谢写谢撒
作者:
yanhao123
时间:
2021-4-15 21:52
有解码吗大佬
作者:
凉城o
时间:
2021-4-16 04:26
谢谢大佬分享 支持支持
欢迎光临 精易论坛 (https://125.confly.eu.org/)
Powered by Discuz! X3.4