⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chexencoder.java

📁 编码、解码工具类。Utility class to do Base64 decoding
💻 JAVA
字号:

public class CHEXEncoder {

    //Forbid create instance
    private CHEXEncoder() {
        //do nothing
    }

    /*
     * Convert bytes to hex digits
     */
    public static String encode(byte[] data) {
        if (data == null)
            return null;
        else
            return encode(data, 0, data.length);
    }

    public static String encode(/*const*/byte[] data, int off, int len) {
        char[] ch;
        int i;
        int b;
        int d;

        ch = new char[data.length << 1]; //*2 size
        i = 0;

        while (len-- > 0) {
            // Convert next byte into a hex digit pair
            b = data[off++] & 0xFF;

            d = b >> 4;
            d = (d < 0xA ? d + '0' : d - 0xA + 'A');
            ch[i++] = (char) d;

            d = b & 0xF;
            d = (d < 0xA ? d + '0' : d - 0xA + 'A');
            ch[i++] = (char) d;
        }

        return (new String(ch));
    }

    public static byte[] decode(String src) {
        if (src == null)
            return null;

        String usrc = src.toUpperCase();
        byte[] buf = new byte[usrc.length() >> 1];
        int b;
        char t;
        for (int i = 0; i < buf.length; i++) {
            t = usrc.charAt(i + i);
            if (t <= '9')
                b = t - '0';
            else
                b = t - 'A' + 10;
            b <<= 4;
            t = usrc.charAt(i + i + 1);
            if (t <= '9')
                b += t - '0';
            else
                b += t - 'A' + 10;
            buf[i] = (byte) b;
        }
        return buf;
    }

    static public void main(String[] args) {
        String s = "32333936375F305F32333939345F32333936375F305F32333939355F32333936385F305F3234303037";
        s = new String(decode(s));
        System.out.println(s);

        try {
            s = "8d634e1c53174f9b75355c40";
            s = new String(decode(s), "UTF-16");
            System.out.println(s);
        } catch (Throwable t) {
            t.printStackTrace();
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -