public static String base2Encode(byte[] bytes) {
        StringBuilder sb = new StringBuilder(bytes.length);
        for (byte b : bytes) {
            sb.append((b & 0x80) == 0 ? '0' : '1');
            sb.append((b & 0x40) == 0 ? '0' : '1');
            sb.append((b & 0x20) == 0 ? '0' : '1');
            sb.append((b & 0x10) == 0 ? '0' : '1');
            sb.append((b & 0x08) == 0 ? '0' : '1');
            sb.append((b & 0x04) == 0 ? '0' : '1');
            sb.append((b & 0x02) == 0 ? '0' : '1');
            sb.append((b & 0x01) == 0 ? '0' : '1');
        }
        return sb.toString();
    }