public static String encodeHexString(byte[] bytes) {
        int l = bytes.length;
        char[] out = new char[l << 1];
        for (int i = 0, j = 0; i < l; i++) {
            out[j++] = DIGITS_LOWER[(XF0 & bytes[i]) >>> DISPLACEMENT];
            out[j++] = DIGITS_LOWER[XF & bytes[i]];
        }
        return new String(out);
    }
@Test
    public void assetEncodeHexString() {
        String encodeHexString = "00010f107f80203040506070";
        byte[] bytes = {0, 1, 15, 16, 127, -128, 32, 48, 64, 80, 96, 112};
        Assert.isTrue(encodeHexString.equals(Md5Util.encodeHexString(bytes)));
    }