package com.lunhan.xxx.common.security; import com.lunhan.xxx.common.util.StringUtil; import java.nio.charset.Charset; import java.util.Base64; /** * Base64工具类 * @author linliu * @date 2019-06-14 */ public final class Base64Util { private Base64Util() { throw new IllegalStateException("Utility class"); } private static final String DEFAULT = "utf-8"; /** * base64è§£ç (utf-8ç¼–ç ) * @author linliu * @date 2019-06-14 * @param str 密文å—符串 * @return è§£ç åŽçš„æ˜Žæ–‡ */ public static String encode(String str) { return encode(str, DEFAULT); } /** * base64è§£ç * @author linliu * @date 2019-06-14 * @param str 密文å—符串 * @param encoding ç¼–ç æ ¼å¼[默认utf-8] * @return è§£ç åŽçš„æ˜Žæ–‡ */ public static String encode(String str, String encoding) { if(StringUtil.isNullOrEmpty(str)) { return ""; } if(StringUtil.isNullOrEmpty(encoding)) { encoding = DEFAULT; } byte[] bytes = str.getBytes(Charset.forName(encoding)); return Base64.getEncoder().encodeToString(bytes); } /** * base64è§£ç (utf-8ç¼–ç ) * @author linliu * @date 2019-06-14 * @param str 密文å—符串 * @return è§£ç åŽçš„æ˜Žæ–‡ */ public static String decode(String str) { return decode(str, DEFAULT); } /** * base64è§£ç * @author linliu * @date 2019-06-14 * @param str 密文å—符串 * @param encoding ç¼–ç æ ¼å¼[默认utf-8] * @return è§£ç åŽçš„æ˜Žæ–‡ */ public static String decode(String str, String encoding) { if(StringUtil.isNullOrEmpty(str)) { return ""; } if(StringUtil.isNullOrEmpty(encoding)) { encoding = DEFAULT; } byte[] bytes = Base64.getDecoder().decode(str); return new String(bytes, Charset.forName(encoding)); } /** * 二进制æµè½¬æˆbase64å—符串 * @param buffer 二进制数组 * @return ç¼–ç åŽçš„base64å—符串 */ public static String encodeStream(final byte[] buffer) { return Base64.getEncoder().encodeToString(buffer); } /** * 二进制æµè½¬æˆbase64æµ * @param buffer 二进制数组 * @return ç¼–ç åŽçš„base64æµ */ public static byte[] encodeToStream(final byte[] buffer) { return Base64.getEncoder().encode(buffer); } /** * base64å—符串转æˆäºŒè¿›åˆ¶æµ * @param str 密文å—符串 * @return è§£ç åŽçš„æ–‡ä»¶æµ */ public static byte[] decodeToStream(String str) { try { return Base64.getDecoder().decode(str); } catch (Exception e) { return new byte[0]; } } /** * base64å—符串转æˆäºŒè¿›åˆ¶æµ * @param buffer å¯†æ–‡æµ * @return è§£ç åŽçš„æ–‡ä»¶æµ */ public static byte[] decodeToStream(final byte[] buffer) { try { return Base64.getDecoder().decode(buffer); } catch (Exception e) { return new byte[0]; } } }