java获取BASE64


获取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();
    }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM