oil-station/fuintBackend/fuint-utils/src/main/java/com/fuint/utils/Base64Util.java

176 lines
4.3 KiB
Java
Raw Normal View History

2024-08-16 18:26:19 +08:00
package com.fuint.utils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.UnsupportedEncodingException;
/**
* 基于Java8的Base64工具类实现,不依赖第三方包
* [Basic编码:适用于标准编码]
* [URL编码:适用于URL地址编码,自动替换掉URL中不能出现的"/"等字符]
* [MIME编码:适用于MIME编码,使用基本的字母数字产生BASE64输出,每一行输出不超过76个字符而且每行以\r\n符结束]
*
* Created by FSQ
* CopyRight https://www.fuint.cn
*/
public class Base64Util {
private static final Logger logger = LoggerFactory.getLogger(Base64Util.class);
private static final String CHARSET = "UTF-8";//默认字符集
/**
* 基本Base64编码
* @param bytes
* @return byte[]
*/
public static byte[] baseEncode(byte[] bytes) {
return java.util.Base64.getEncoder().encode(bytes);
}
/**
* 基本Base64编码
*
* @param s
* @return String
*/
public static String baseEncode(String s) {
try {
byte[] bytes = s.getBytes(CHARSET);
return java.util.Base64.getEncoder().encodeToString(bytes);
} catch (UnsupportedEncodingException e) {
logger.error(e.getMessage(), e);
return null;
}
}
/**
* 基本Base64解码
*
* @param bytes
* @return byte[]
*/
public static byte[] baseDecode(byte[] bytes) {
return java.util.Base64.getDecoder().decode(bytes);
}
/**
* 基本Base64解码
*
* @param s
* @return String
*/
public static String baseDecode(String s) {
try {
byte[] result = java.util.Base64.getDecoder().decode(s);
return new String(result, CHARSET);
} catch (UnsupportedEncodingException e) {
logger.error(e.getMessage(), e);
return null;
}
}
/**
* URL编码
*
* @param bytes
* @return byte[]
*/
public static byte[] urlEncode(byte[] bytes) {
return java.util.Base64.getUrlEncoder().encode(bytes);
}
/**
* URL编码
*
* @param s
* @return String
*/
public static String urlEncode(String s) {
try {
byte[] bytes = s.getBytes(CHARSET);
return java.util.Base64.getUrlEncoder().encodeToString(bytes);
} catch (UnsupportedEncodingException e) {
logger.error(e.getMessage(), e);
return null;
}
}
/**
* URL解码
*
* @param bytes
* @return byte[]
*/
public static byte[] urlDecode(byte[] bytes) {
return java.util.Base64.getUrlDecoder().decode(bytes);
}
/**
* URL解码
*
* @param s
* @return String
*/
public static String urlDecode(String s) {
byte[] result = java.util.Base64.getUrlDecoder().decode(s);
try {
return new String(result, CHARSET);
} catch (UnsupportedEncodingException e) {
logger.error(e.getMessage(), e);
return null;
}
}
/**
* MIME编码
*
* @param bytes
* @return byte[]
*/
public static byte[] mimeEncode(byte[] bytes) {
return java.util.Base64.getMimeEncoder().encode(bytes);
}
/**
* MIME编码
*
* @param s
* @return String
*/
public static String mimeEncode(String s) {
try {
byte[] bytes = s.getBytes(CHARSET);
return java.util.Base64.getMimeEncoder().encodeToString(bytes);
} catch (UnsupportedEncodingException e) {
logger.error(e.getMessage(), e);
return null;
}
}
/**
* MIME解码
*
* @param bytes
* @return byte[]
*/
public static byte[] mimeDecode(byte[] bytes) {
return java.util.Base64.getMimeDecoder().decode(bytes);
}
/**
* MIME解码
*
* @param s
* @return String
*/
public static String mimeDecode(String s) {
try {
byte[] result = java.util.Base64.getMimeDecoder().decode(s);
return new String(result, CHARSET);
} catch (UnsupportedEncodingException e) {
logger.error(e.getMessage(), e);
return null;
}
}
}