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ú)效");
}
}
}
base64簡(jiǎn)單加密解密處理
?著作權(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ù)。
【社區(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)容
- aes加密解密:1、安裝crypto-js: npm install crypto-js --save-dev2...
- 前言由于接口請(qǐng)求需要將請(qǐng)求內(nèi)容加密再傳輸,其中一部就是講內(nèi)容進(jìn)行base64編碼,然后請(qǐng)求回來(lái)的數(shù)據(jù)也進(jìn)行同樣的b...
- 本文要推薦的[ToolFk]是一款程序員經(jīng)常使用的線上免費(fèi)測(cè)試工具箱,ToolFk 特色是專注于程序員日常的...