0
点赞
收藏
分享

微信扫一扫

java byte[]转换base64

大师的学徒 2022-04-13 阅读 55
javaspring

这是一个base64加密的一个工具类

/**
 * base64加密工具类
 * 
 * @author eshore
 * @since 2020-09-31
 */
public class Base64 {
    private static final String BASE64_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";

    private static final char[] legalChars = BASE64_CHARACTERS.toCharArray();

    /**
     * 工具类,避免实例化
     */
    private Base64(){
    }

    /**
     * Base64加密
     * 
     * @param data 待加密字节
     * @return 使用base64加密后字符串
     */
    public static String encode(byte[] data) {
        if (data == null) {
            return "";
        }
        int start = 0;
        int len = data.length;
        StringBuffer buf = new StringBuffer(data.length * 3 / 2);

        int end = len - 3;
        int i = start;
        int n = 0;

        while (i <= end) {
            int d = ((((int) data[i]) & 0x0ff) << 16) | ((((int) data[i + 1]) & 0x0ff) << 8)
                    | (((int) data[i + 2]) & 0x0ff);

            buf.append(legalChars[(d >> 18) & 63]);
            buf.append(legalChars[(d >> 12) & 63]);
            buf.append(legalChars[(d >> 6) & 63]);
            buf.append(legalChars[d & 63]);

            i += 3;

            if (n++ >= 14) {
                n = 0;
                buf.append(" ");
            }
        }

        if (i == start + len - 2) {
            int d = ((((int) data[i]) & 0x0ff) << 16) | ((((int) data[i + 1]) & 255) << 8);

            buf.append(legalChars[(d >> 18) & 63]);
            buf.append(legalChars[(d >> 12) & 63]);
            buf.append(legalChars[(d >> 6) & 63]);
            buf.append("=");
        } else if (i == start + len - 1) {
            int d = (((int) data[i]) & 0x0ff) << 16;

            buf.append(legalChars[(d >> 18) & 63]);
            buf.append(legalChars[(d >> 12) & 63]);
            buf.append("==");
        }

        return buf.toString();
    }
}

第二步调用Base64这个类里面的encode这个方法

 //byte[]转base64Str

 String base64Str= Base64.encode(cipherArray).replaceAll("\r\n","");

第一次写有点不好,多多见谅 哈哈哈哈哈

举报

相关推荐

0 条评论