色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

Java實現AES/CBC/PKCS7Padding加解密的方法

瀏覽:3日期:2022-08-27 11:21:30

最近項目需要選擇一套對稱加密算法,來滿足前后端之間的加解密操作。初步打算前端使用crypto-js來實現,后端使用java本身的加密算法實現,但遇到了一個問題:java本身只支持NoPadding和PKCS5Padding,而crypto-js提供的padding方式沒有PKCS5Padding,所以不得以,前后端最終使用PKCS7Padding來實現功能.因此只能通過引入第三方jar包的方式讓jave支持pkcs7padding

引入依賴

<dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk16</artifactId><version>1.46</version></dependency>

完整代碼

package com.hzjd.miniapp.util;import java.security.Security;import java.security.spec.AlgorithmParameterSpec;import javax.crypto.Cipher;import javax.crypto.spec.IvParameterSpec;import javax.crypto.spec.SecretKeySpec;import org.apache.commons.codec.binary.Base64;import org.apache.commons.lang.StringUtils;import org.bouncycastle.jce.provider.BouncyCastleProvider;import com.sun.istack.internal.NotNull;public class AESUtil {private static final String CHARSET_NAME = 'UTF-8';private static final String AES_NAME = 'AES';// 加密模式public static final String ALGORITHM = 'AES/CBC/PKCS7Padding';// 密鑰public static final String KEY = '1954682168745975';// 偏移量public static final String IV = '1954682168745975';static {Security.addProvider(new BouncyCastleProvider());}/** * 加密 * * @param content * @param key * @return */public String encrypt(@NotNull String content) {byte[] result = null;try {Cipher cipher = Cipher.getInstance(ALGORITHM);SecretKeySpec keySpec = new SecretKeySpec(KEY.getBytes(CHARSET_NAME), AES_NAME);AlgorithmParameterSpec paramSpec = new IvParameterSpec(IV.getBytes());cipher.init(Cipher.ENCRYPT_MODE, keySpec, paramSpec);result = cipher.doFinal(content.getBytes(CHARSET_NAME));} catch (Exception e) {e.printStackTrace();}return Base64.encodeBase64String(result);}/** * 解密 * * @param content * @param key * @return */public String decrypt(@NotNull String content) {try {Cipher cipher = Cipher.getInstance(ALGORITHM);SecretKeySpec keySpec = new SecretKeySpec(KEY.getBytes(CHARSET_NAME), AES_NAME);AlgorithmParameterSpec paramSpec = new IvParameterSpec(IV.getBytes());cipher.init(Cipher.DECRYPT_MODE, keySpec, paramSpec);return new String(cipher.doFinal(Base64.decodeBase64(content)), CHARSET_NAME);} catch (Exception e) {e.printStackTrace();}return StringUtils.EMPTY;}public static void main(String[] args) {AESUtil aes = new AESUtil();String contents = '121456465';String encrypt = aes.encrypt(contents);System.out.println('加密后:' + encrypt);String decrypt = aes.decrypt(encrypt);System.out.println('解密后:' + decrypt);}}

總結

到此這篇關于Java實現AES/CBC/PKCS7Padding加解密的方法的文章就介紹到這了,更多相關Java實現AES/CBC/PKCS7Padding加解密內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
主站蜘蛛池模板: 日韩在线观看中文字幕 | 亚洲激情欧美 | 国产成人综合亚洲 | 在线视频久草 | 狠狠色婷婷丁香综合久久韩国 | 9lporm自拍视频在线 | 一级看片免费视频囗交 | 可以免费看黄的网站 | 欧美另类videosbestsex高清 | 国产精品免费一区二区三区四区 | 成年人在线视频网站 | 韩国精品欧美一区二区三区 | 成年人免费在线视频 | 亚洲精品综合久久中文字幕 | 成人在线欧美 | 欧美性性性性性色大片免费的 | 欧美日韩综合高清一区二区 | 一区二区三区视频在线 | 国产成人精视频在线观看免费 | 欧美6699在线视频免费 | 日本精品久久久久久久 | 免费国产成人高清在线观看视频 | 老司机午夜在线视频免费观 | 加勒比色久综合在线 | 久色乳综合思思在线视频 | 欧美激情久久久久久久大片 | 黄色a三级免费看 | 国产亚洲精品看片在线观看 | 真人一级毛片全部免 | www.久久久| 欧美aaaaa激情毛片 | 久久亚洲国产午夜精品理论片 | 国产女人自拍 | 日韩一区二区在线播放 | 99国产精品农村一级毛片 | 久久精品亚瑟全部免费观看 | 亚洲情a成黄在线观看 | 国产欧美曰韩一区二区三区 | 超级乱淫视频aⅴ播放视频 超级碰碰碰在线观看 | 国产成人精品视频一区二区不卡 | 日韩不卡一区二区三区 |