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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

带偏移量的AES加密工具

發(fā)布時間:2024/7/5 编程问答 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 带偏移量的AES加密工具 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?自定義的一個對稱加密工具類AESUtil.java

public static final String ENCRYPTION_ALGORITHM = "AES";public static final String CIPHER_PARAM = "AES/CBC/PKCS5Padding";private static final String DEFAULT_KEY_AND_IV = "1234567890ABCDEF";//帶偏移量的密鑰和偏移量似乎是固定16位長度的private static AESUtil instance = null;/** 偏移量 **/private static IvParameterSpec iv;/** 密鑰 **/private static SecretKeySpec key;/*** @Title: getInstance* @Description: 單例AES加密工具,使用默認的密鑰以及偏移量* @return AESUtil* @author hanzhiyong* @date 2019-4-26下午4:51:12*/public static AESUtil getInstance() {if (instance == null) {instance = new AESUtil(DEFAULT_KEY_AND_IV);}return instance;}/*** @Title:AESUtil* @Description:自定義偏移量構(gòu)造AES加密工具,使用默認的KEY* @param ivParameter 原始偏移量字符串*/public AESUtil(String ivParameter) {iv = new IvParameterSpec(ivParameter.getBytes());key = new SecretKeySpec(DEFAULT_KEY_AND_IV.getBytes(), ENCRYPTION_ALGORITHM);}/*** @Title:AESUtil* @Description:自定義偏移量和密鑰構(gòu)造AES加密工具* @param secretKey 原始密鑰字符串* @param ivParameter 原始偏移量字符串*/public AESUtil(String secretKey, String ivParameter) {iv = new IvParameterSpec(ivParameter.getBytes());key = new SecretKeySpec(secretKey.getBytes(), ENCRYPTION_ALGORITHM);}/*** 取得密鑰* * @throws Exception*/public static String getKey() {Base64 base64 = new Base64();System.out.println("密鑰String:" + new String(key.getEncoded()));return base64.encodeToString(key.getEncoded());}/*** 取得偏移量*/public static String getIv() throws Exception {Base64 base64 = new Base64();System.out.println("偏移量String:" + new String(iv.getIV()));return base64.encodeToString(iv.getIV());}/*** @Title: encrypt* @Description: AES加密* @param enString 用來加密的明文* @throws Exception* @return String 加密后密文* @author hanzhiyong* @date 2019-4-26下午3:57:17*/public String encrypt(String enString) throws Exception {Base64 base64 = new Base64();Cipher cipher = Cipher.getInstance(CIPHER_PARAM);cipher.init(Cipher.ENCRYPT_MODE, key, iv);byte[] encrypted = cipher.doFinal(enString.getBytes("utf-8"));return base64.encodeToString(encrypted);}/*** @Title: decrypt* @Description: AES解密* @param deString 用來解密的密文* @throws Exception* @return String 解密后的明文* @author hanzhiyong* @date 2019-4-26下午3:58:06*/public String decrypt(String deString) throws Exception {try {Base64 base64 = new Base64();Cipher cipher = Cipher.getInstance(CIPHER_PARAM);cipher.init(Cipher.DECRYPT_MODE, key, iv);byte[] decrypted = base64.decode(deString);byte[] original = cipher.doFinal(decrypted);return new String(original, "utf-8");} catch (Exception ex) {return null;}}/*** @Title: main* @Description: 加密解密測試用例* @param args* @throws Exception* @return void* @author hanzhiyong* @date 2019-4-23下午6:41:16*/@Deprecatedpublic static void main(String args[]) throws Exception {String sourceString = "測試用來加密的數(shù)據(jù)";System.out.println("sourceString加密前: " + sourceString);System.out.println("=========================單例的加密工具=========================");System.out.println("base64加密后密鑰:" + AESUtil.getInstance().getKey());System.out.println("base64加密后偏移量:" + AESUtil.getInstance().getIv()); System.out.println("加密后sourceString: " + AESUtil.getInstance().encrypt(sourceString));System.out.println("解密后sourceString: " + AESUtil.getInstance().decrypt(AESUtil.getInstance().encrypt(sourceString)));AESUtil aesUtil = new AESUtil("0123456789111111");System.out.println("=========================自定義偏移量的工具=========================");System.out.println("base64加密后密鑰:" + aesUtil.getKey());System.out.println("base64加密后偏移量:" + aesUtil.getIv());System.out.println("加密后sourceString: " + aesUtil.encrypt(sourceString));System.out.println("解密后sourceString: " + aesUtil.decrypt(aesUtil.encrypt(sourceString)));}

?

轉(zhuǎn)載于:https://www.cnblogs.com/hanzhiyong/p/10775954.html

總結(jié)

以上是生活随笔為你收集整理的带偏移量的AES加密工具的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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