package com.dsh.activity.util.akeylogin; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.Base64; public class Base64Utils { private static final Charset DEFAULT_CHARSET; public Base64Utils() { } public static byte[] encode(byte[] src) { return src.length == 0 ? src : Base64.getEncoder().encode(src); } public static byte[] decode(byte[] src) { return src.length == 0 ? src : Base64.getDecoder().decode(src); } public static byte[] encodeUrlSafe(byte[] src) { return src.length == 0 ? src : Base64.getUrlEncoder().encode(src); } public static byte[] decodeUrlSafe(byte[] src) { return src.length == 0 ? src : Base64.getUrlDecoder().decode(src); } public static String encodeToString(byte[] src) { return src.length == 0 ? "" : new String(encode(src), DEFAULT_CHARSET); } public static byte[] decodeFromString(String src) { return src.isEmpty() ? new byte[0] : decode(src.getBytes(DEFAULT_CHARSET)); } public static String encodeToUrlSafeString(byte[] src) { return new String(encodeUrlSafe(src), DEFAULT_CHARSET); } public static byte[] decodeFromUrlSafeString(String src) { return decodeUrlSafe(src.getBytes(DEFAULT_CHARSET)); } static { DEFAULT_CHARSET = StandardCharsets.UTF_8; } }