获取BASE64编码:
import java.io.UnsupportedEncodingException; import java.time.LocalDate; import java.util.regex.Matcher; import java.util.regex.Pattern; public static void main(String[] args) throws UnsupportedEncodingException { String iqaTraceno = "iqano001"; // System.out.println(new String(Base64.encodeBase64(iqaTraceno.getBytes()), "UTF-8") + "-" + System.currentTimeMillis()); System.out.println(btoa(iqaTraceno) + "-" + System.currentTimeMillis()); System.out.println(LocalDate.now().toString()); } private static String base64hash = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; public static boolean isMatcher(String inStr ,String reg){ Pattern pattern = Pattern.compile(reg); Matcher matcher = pattern.matcher(inStr); if(matcher.matches()){ return true; } return false; } public static String btoa(String inStr){ // if (/([^\u0000-\u00ff])/.test(s)) { // throw new Error('INVALID_CHARACTER_ERR'); // } if(inStr == null || isMatcher(inStr ,"([^\\u0000-\\u00ff])")){ return null; } StringBuilder result = new StringBuilder(); int i=0; int mod=0; int ascii; int prev=0; while (i < inStr.length()){ ascii = inStr.charAt(i); mod = i % 3; switch(mod){ case 0: result.append(String.valueOf(base64hash.charAt(ascii >> 2))); break; case 1: result.append(String.valueOf(base64hash.charAt((prev & 3) << 4 | (ascii >> 4)))); break; case 2: result.append(String.valueOf(base64hash.charAt((prev & 0x0f) << 2 | (ascii >> 6)))); result.append(String.valueOf(base64hash.charAt(ascii & 0x3f))); break; } prev = ascii; i++; } if(mod == 0) { result.append(String.valueOf(base64hash.charAt((prev & 3) << 4))); result.append("=="); } else if (mod == 1) { result.append(String.valueOf(base64hash.charAt((prev & 0x0f) << 2))); result.append("="); } return result.toString(); }