亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

Java實現(xiàn)AES/CBC/PKCS7Padding加解密的方法

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

最近項目需要選擇一套對稱加密算法,來滿足前后端之間的加解密操作。初步打算前端使用crypto-js來實現(xiàn),后端使用java本身的加密算法實現(xiàn),但遇到了一個問題:java本身只支持NoPadding和PKCS5Padding,而crypto-js提供的padding方式?jīng)]有PKCS5Padding,所以不得以,前后端最終使用PKCS7Padding來實現(xiàn)功能.因此只能通過引入第三方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);}}

總結(jié)

到此這篇關(guān)于Java實現(xiàn)AES/CBC/PKCS7Padding加解密的方法的文章就介紹到這了,更多相關(guān)Java實現(xiàn)AES/CBC/PKCS7Padding加解密內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Java
相關(guān)文章:
主站蜘蛛池模板: 欧美高清一区二区三 | 伊人激情| 免费一区二区三区视频狠狠 | 国产福利写真视频在线观看 | 99久久国语露脸精品对白 | 黄色在线播放网址 | 香蕉久久精品国产 | 国产成人精品免费视频大全办公室 | 欧美小younv 欧美性xxxxx极品老少 | 微拍秒拍99福利精品小视频 | 日韩高清在线不卡 | 含羞草麻豆 | 日韩视频大全 | 亚洲午夜影视 | 一级特黄aaa大片大全 | 国产伦精品一区二区三区免费 | 黄色片网站在线 | 亚洲精品自产拍在线观看 | 久久香蕉精品视频 | 国产福利兔女郎在线观看 | 国产日产亚洲系列首页 | 看免费的黄色片 | 欧美一级做a爰片免费 | 国产成本人三级在线观看网站 | 日韩精品一区二区三区中文3d | 国产女主播91 | 国内性视频| 国产区精品福利在线观看精品 | 污污视频在线观看黄 | 美女黄页在线观看 | 黄色片网站免费 | 综合久久久久综合体桃花网 | 色香欲综合成人免费视频 | 黄色三级三级三级 | 182tv免费福利夜在线观看 | 日本 欧美 在线 | 亚洲 欧美 中文 日韩专区 | 免费观看h片 | 国产九九免费视频 | 久久久久香蕉视频 | 日韩一级欧美一级毛片在 |