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

一种新的 Base64 算法

  •  
  •   Braid · May 19, 2018 · 3460 views
    This topic created in 2939 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
        1
    janxin  
       May 19, 2018 via iPad   ❤️ 3
    base64 只是一种编码啊…结果不同的最多叫变形…
    Braid
        2
    Braid  
    OP
       May 19, 2018
    @janxin 嗯,对的,口误 唉~
    xmadi
        3
    xmadi  
       May 19, 2018 via iPhone
    ???? base64 是一种编码 生成的算法是固定的 算法实现的方式是多样的 楼主你这个只是实现的一种方式啊 随便找个 decoder 也能解析吧
    Braid
        4
    Braid  
    OP
       May 19, 2018
    不要在意这些文字细节,用上面的编码后的
    5rFf7E2K6rqN7Hpiyush7E6S5fJg6rsi5NBf6NGT5rs=


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

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

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

    p.s. java 版的怎么这么啰嗦……
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   878 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 52ms · UTC 21:09 · PVG 05:09 · LAX 14:09 · JFK 17:09
    ♥ Do have faith in what you're doing.