base64簡(jiǎn)單加密解密處理

package com.work.sign;

import java.util.Base64;
import java.util.Random;

/**
 * 加密工具類
 */
public class EncryptionOperation {

    /**
     * 最簡(jiǎn)單的base64加密解密
     * @param str 待base64加密的字符串
     * @return 加密串
     */
    public String encryptionBase64(String str) {
        //加密操作
        String encodiString = new String(Base64.getEncoder().encode(str.getBytes()));
        return encodiString;
    }

    /**
     * 最簡(jiǎn)單的base64解密
     * @param str 待base64解密的字符串
     * @return 解密串
     */
    public String decryptBase64(String str) {
        //解密操作
        String oldString = new String(Base64.getDecoder().decode(str));
        return oldString;
    }


    /**
     * 字母大小寫轉(zhuǎn)換
     * @param str 需要大/小寫互換字符串
     * @return 大小寫轉(zhuǎn)換串
     */
    public String exChange(String str){
        StringBuffer sb = new StringBuffer();
        if(str!=null){
            for(int i=0;i<str.length();i++){
                char c = str.charAt(i);
                if(Character.isUpperCase(c)){
                    sb.append(Character.toLowerCase(c));
                }else if(Character.isLowerCase(c)){
                    sb.append(Character.toUpperCase(c));
                }else{
                    sb.append(c);
                }
            }
        }
        return sb.toString();
    }

    /**
     * 創(chuàng)造大/小寫加密字符串,保存數(shù)組
     * @param a 創(chuàng)造a組加密串
     * @param b 含有b個(gè)大/小寫字母的串
     * @return 鹽數(shù)組
     */
    public String[] saveSalt(int a,int b){
        //存放加密鹽數(shù)組
        String[] salt = new String[a];

        Random r = new Random();
        for(int z =0 ;z < a;z++) {
            //大/小寫字符串加密串
            String code = "";
            for (int i = 0; i < b; ++i) {
                int temp = r.nextInt(52);
                char x = (char) (temp < 26 ? temp + 97 : (temp % 26) + 65);
                //控制第一位為小寫字母
                if(i == 0 && Character.isUpperCase(x)){
                    x = Character.toLowerCase(x);
                }
                code += x;
            }
            salt[z] = code;

        }
        return salt;
    }

    public static void main(String[] args) {
        String name = "鴻濤";
        EncryptionOperation encryptionOperation = new EncryptionOperation();
        //存放鹽數(shù)組
        String[] salt = null;
        System.out.println("未加密串:"+name);
        //生成的鹽存放數(shù)組
        salt = encryptionOperation.saveSalt(1,10);
        System.out.println("base64加密串:"+salt[0]+encryptionOperation.encryptionBase64(name));
        //base64加鹽字符串
        String namebase64 = encryptionOperation.encryptionBase64(name);
        //頭部加密
        String addSalt = salt[0]+namebase64;
        //全串二次加密
        addSalt = encryptionOperation.exChange(addSalt);
        System.out.println("加鹽base64加密串:"+addSalt);
        //字段解密去鹽
        String reduceSalt = encryptionOperation.exChange(addSalt);
        //解密去頭部鹽
        reduceSalt = reduceSalt.substring(10,reduceSalt.length());
        System.out.println("base64去鹽串:"+reduceSalt);
        //解密串
        reduceSalt = encryptionOperation.decryptBase64(reduceSalt);
        System.out.println("base64解密串:"+reduceSalt);


        if(name.equals(reduceSalt)){
            System.out.println("base64加密-》解密有效");
        }else{
            System.out.println("base64加密-》解密無(wú)效");
        }

    }
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容