日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

AESUtil加密加将单个工具类打成jar包并引用

發(fā)布時間:2023/12/10 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AESUtil加密加将单个工具类打成jar包并引用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
AES加密和解密,可以放在password的get,set方法中 package com.deqin.aesutil.util;import com.aliyun.odps.utils.StringUtils; import org.apache.log4j.Logger;import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; import java.security.SecureRandom;public class AESUtil {public static final Logger logger = Logger.getLogger(AESUtil.class);public static final String defaultCharset = "UTF-8";public static final String KEY_AES = "AES";/*** 加密** @param data 需要加密的內(nèi)容* @param key 加密密碼* @return*/public static String encrypt(String data, String key) {return doAES(data, key, Cipher.ENCRYPT_MODE);}/*** 解密** @param data 待解密內(nèi)容* @param key 解密密鑰* @return*/public static String decrypt(String data, String key) {return doAES(data, key, Cipher.DECRYPT_MODE);}/*** 加解密** @param data 待處理數(shù)據(jù)* @param key 密鑰* @param mode 加解密mode* @return*/private static String doAES(String data, String key, int mode) {try {if (StringUtils.isBlank(data) || StringUtils.isBlank(key)) {return null;}//判斷是加密還是解密boolean encrypt = mode == Cipher.ENCRYPT_MODE;byte[] content;//true 加密內(nèi)容 false 解密內(nèi)容if (encrypt) {content = data.getBytes(defaultCharset);} else {content = parseHexStr2Byte(data);}//1.構(gòu)造密鑰生成器,指定為AES算法,不區(qū)分大小寫KeyGenerator kgen = KeyGenerator.getInstance(KEY_AES);//2.根據(jù)ecnodeRules規(guī)則初始化密鑰生成器//生成一個128位的隨機源,根據(jù)傳入的字節(jié)數(shù)組kgen.init(128, new SecureRandom(key.getBytes()));//3.產(chǎn)生原始對稱密鑰SecretKey secretKey = kgen.generateKey();//4.獲得原始對稱密鑰的字節(jié)數(shù)組byte[] enCodeFormat = secretKey.getEncoded();//5.根據(jù)字節(jié)數(shù)組生成AES密鑰SecretKeySpec keySpec = new SecretKeySpec(enCodeFormat, KEY_AES);//6.根據(jù)指定算法AES自成密碼器Cipher cipher = Cipher.getInstance(KEY_AES);// 創(chuàng)建密碼器//7.初始化密碼器,第一個參數(shù)為加密(Encrypt_mode)或者解密解密(Decrypt_mode)操作,第二個參數(shù)為使用的KEYcipher.init(mode, keySpec);// 初始化byte[] result = cipher.doFinal(content);if (encrypt) {//將二進(jìn)制轉(zhuǎn)換成16進(jìn)制return parseByte2HexStr(result);} else {return new String(result, defaultCharset);}} catch (Exception e) {logger.error("AES 密文處理異常", e);// System.out.print(“Exception”);}return null;}/*** 將二進(jìn)制轉(zhuǎn)換成16進(jìn)制** @param buf* @return*/public static String parseByte2HexStr(byte buf[]) {StringBuilder sb = new StringBuilder();for (int i = 0; i < buf.length; i++) {String hex = Integer.toHexString(buf[i] & 0xFF);if (hex.length() == 1) {hex = '0' + hex;}sb.append(hex.toUpperCase());}return sb.toString();}/*** 將16進(jìn)制轉(zhuǎn)換為二進(jìn)制** @param hexStr* @return*/public static byte[] parseHexStr2Byte(String hexStr) {if (hexStr.length() < 1) {return null;}byte[] result = new byte[hexStr.length() / 2];for (int i = 0; i < hexStr.length() / 2; i++) {int high = Integer.parseInt(hexStr.substring(i * 2, i * 2 + 1), 16);int low = Integer.parseInt(hexStr.substring(i * 2 + 1, i * 2 + 2), 16);result[i] = (byte) (high * 16 + low);}return result;}public static void main(String[] args) {}}

使用idea實現(xiàn)自己的工具類打包成jar包(工具類中有引用三方j(luò)ar)(非可運行jar,屬工具類jar)
https://www.cnblogs.com/007sx/p/12442991.html

若要引用第三方j(luò)ar包,可以如下:

下方是pom文件中配置文件 <dependency><groupId>com.deqin</groupId><artifactId>aesdecrypt</artifactId><scope>system</scope><systemPath>${project.basedir}/src/main/resources/lib/aesdecrypt.jar</systemPath></dependency> <build><plugins> ... <plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><includeSystemScope>true</includeSystemScope></configuration></plugin></plugins> </build>

不過僅僅引入,springboot項目通過本地引入第三方j(luò)ar包時,第三方j(luò)ar包無法打包進(jìn)項目,可參考下方資料
https://www.cnblogs.com/lwyang/p/12554097.html

總結(jié)

以上是生活随笔為你收集整理的AESUtil加密加将单个工具类打成jar包并引用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。