• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Braid
V2EX  ›  程序员

一种新的 Base64 算法

  •  
  •   Braid · May 19, 2018 · 3734 views
    This topic created in 3099 days ago, the information mentioned may be changed or developed.

    最近看到了一种新的 base64 算法,各位大佬有可以写出 Base64Decode 方法的吗?语言不限

    public class Base64New {
        private static final char[] Base64ByteToStr = null;
        private static final int RANGE = 255;
        private static byte[] StrToBase64Byte;
    
        static {
            Base64New.Base64ByteToStr = new char[]{'v', 'w', 'x', 'r', 's', 't', 'u', 'o', 'p', 'q', '3', '4', '5', '6', '7', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'y', 'z', '0', '1', '2', 'P', 'Q', 'R', 'S', 'T', 'K', 'L', 'M', 'N', 'O', 'Z', 'a', 'b', 'c', 'd', 'U', 'V', 'W', 'X', 'Y', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', '8', '9', '+', '/'};
            Base64New.StrToBase64Byte = new byte[128];
        }
    
        public Base64New() {
            super();
        }
    
        public String Base64Encode(byte[] arg9) {
            int v7 = 3;
            StringBuilder v3 = new StringBuilder();
            int v1;
            for(v1 = 0; v1 <= arg9.length - 1; v1 += 3) {
                byte[] v0 = new byte[4];
                byte v4 = 0;
                int v2;
                for(v2 = 0; v2 <= 2; ++v2) {
                    if(v1 + v2 <= arg9.length - 1) {
                        v0[v2] = ((byte)((arg9[v1 + v2] & 255) >>> v2 * 2 + 2 | v4));
                        v4 = ((byte)(((arg9[v1 + v2] & 255) << (2 - v2) * 2 + 2 & 255) >>> 2));
                    }
                    else {
                        v0[v2] = v4;
                        v4 = 64;
                    }
                }
    
                v0[v7] = v4;
                for(v2 = 0; v2 <= v7; ++v2) {
                    if(v0[v2] <= 63) {
                        v3.append(Base64New.Base64ByteToStr[v0[v2]]);
                    }
                    else {
                        v3.append('=');
                    }
                }
            }
    
            return v3.toString();
        }
    }
    
    janxin
    janxin
    May 19, 2018 via iPad❤️3
    1
    base64 只是一种编码啊…结果不同的最多叫变形…
    Braid
    Braid
    OP
    May 19, 2018
    2
    @janxin 嗯,对的,口误 唉~
    xmadi
    xmadi
    May 19, 2018 via iPhone
    3
    ???? base64 是一种编码 生成的算法是固定的 算法实现的方式是多样的 楼主你这个只是实现的一种方式啊 随便找个 decoder 也能解析吧
    Braid
    Braid
    OP
    May 19, 2018
    4
    不要在意这些文字细节,用上面的编码后的
    5rFf7E2K6rqN7Hpiyush7E6S5fJg6rsi5NBf6NGT5rs=


    请教明文,重谢~
    xmadi
    xmadi
    May 19, 2018 via iPhone
    5
    @xmadi 粗糙看了下这个不是 base64 啊 和楼上说的一样 是 base64 的变形 实现原理和 base64 一样的
    e9e499d78f
    e9e499d78f
    May 19, 2018
    6
    我觉得可以给报价了
    hundan
    hundan
    May 19, 2018 via Android
    7
    粗糙看了下,应该只是默认字符表被替换了。找个能自定义字符表的工具就可以解了,之前做过。
    hundan
    hundan
    May 19, 2018 via Android
    8
    @hundan 等等……给钱的吗哈哈哈,报价?
    lukefan
    lukefan
    May 19, 2018
    9
    一个 md5 字符串, 楼主想搞什么......
    mengzhuo
    mengzhuo
    May 19, 2018❤️1
    10
    05397c42f9b6da593a3644162d******
    ??后面几位隐掉了
    qq316107934
    qq316107934
    May 19, 2018 via Android
    11
    这是反编译啥软件呢,发到这里找大家要 decode 不好吧?
    des
    des
    May 19, 2018 via Android
    12
    看着风格像是反编译出来的
    你还是报个价吧,先
    Braid
    Braid
    OP
    May 19, 2018
    13
    @mengzhuo 可以单发下我看看嘛?加个好友,哈哈
    cairnechen
    cairnechen
    May 19, 2018
    14
    等于说想在 v2 找免费劳动力
    Braid
    Braid
    OP
    May 19, 2018
    15
    @cairnechen v2 不支持报价吧?没怎么逛过 不太清楚
    InternetExplorer
    InternetExplorer
    May 19, 2018
    17
    不就是这个换了个码表吗
    dartabe
    dartabe
    May 19, 2018
    18
    楼主基本上就是个骗子了? 哈哈 标题起的就是骗子的风格
    feiyuanqiu
    feiyuanqiu
    May 19, 2018
    19
    05397c42f9b6da593a3644162d36eb01
    EyreFree
    EyreFree
    May 19, 2018
    20
    V2 不支持报价?外包节点了解一下...

    https://www.v2ex.com/go/outsourcing
    mengzhuo
    mengzhuo
    May 19, 2018
    21
    @Braid 一行代码的事情

    https://gist.github.com/mengzhuo/218d7f801045cf82e3f69780dd6cdaff

    p.s. java 版的怎么这么啰嗦……
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2560 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 12:02 · PVG 20:02 · LAX 04:02 · JFK 07:02
    ♥ Do have faith in what you're doing.