JAVA AES 加密 親測可用
廢話不多說直接上程式碼!! 這個看不懂的就不用學java 了!
package com.pinnacle;import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;
public class AesTest {
/**
* 將byte陣列轉化成為16進位制輸出
* @param bytes
* @return
*/
public static String converByteToHexString(byte[] bytes) {
String result="";
for(int i=0;i<bytes.length;i++) {
int temp=bytes[i] &0xff;
String tempHex =Integer.toHexString(temp);
if(tempHex.length()<2) {
result+="0"+tempHex;
}else {
result+=tempHex;
}
}
return result;
}
/**
* AES加密演算法
* @param message
* @param password
* @return
* @throws Exception
*/
public static byte[] AESJDKEncode(String message,String password) {
try {
KeyGenerator kgen=KeyGenerator.getInstance("AES");//例項化一個用AES加密演算法的金鑰生成器
kgen.init(128,new SecureRandom(password.getBytes()));//使用使用者提供的password初始化此金鑰生成器,使其具有確定的金鑰大小128位元組長。
SecretKey secreKey=kgen.generateKey();//生成一個金鑰。
byte[] enCodeFormat=secreKey.getEncoded();//返回基本編碼格式的金鑰,如果此金鑰不支援編碼,則返回 null。
SecretKeySpec key=new SecretKeySpec(enCodeFormat, "AES");//根據給定的enCodeFormat位元組陣列構造一個用AES演算法加密的金鑰。
Cipher cipher =Cipher.getInstance("AES");//建立密碼器
cipher.init(Cipher.ENCRYPT_MODE, key);//初始化 // 以加密的方式用金鑰初始化此 Cipher。
byte[] result=cipher.doFinal(message.getBytes());//按byteContent單部分操作加密指定的
return result;//加密 返回加密過後的byteContent
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
/**
* AES解密演算法
* @param message
* @param password
* @return
*/
public static byte[] AESJDKDecode(byte[]message,String password) {
try {
KeyGenerator kgen=KeyGenerator.getInstance("AES");
kgen.init(128,new SecureRandom(password.getBytes()));
SecretKey secreKey=kgen.generateKey();
byte[] enCodeFormat=secreKey.getEncoded();
SecretKeySpec key=new SecretKeySpec(enCodeFormat, "AES");
Cipher cipher =Cipher.getInstance("AES");//建立密碼器
cipher.init(Cipher.DECRYPT_MODE, key);//初始化
byte[] result=cipher.doFinal(message);
return result;//解密
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
String content="123123123131";
String password ="key";
System.out.println("加密前的字串為:"+content);
byte[] encodeMessage=AESJDKEncode(content,password);//AES加密
System.out.println("AES 加密後為 :"+converByteToHexString(encodeMessage));
byte[] decodeMessage=AESJDKDecode(encodeMessage,password);
System.out.println("AES 最終解密後為:"+new String(decodeMessage));*/
}
}
相關文章
- Java AES加密和解密教程 - BaeldungJava加密解密
- AES加密加密
- Golang AES加密Golang加密
- AES加密解密加密解密
- AES 加密&解密加密解密
- Java 23連夜官宣釋出,IDEA親測可用!JavaIdea
- 【親測可用】阿里雲簡訊阿里
- Vue使用AES加密Vue加密
- AES CBC 加密解密加密解密
- netcore AES同等效轉java語言 加密方法NetCoreJava加密
- JavaScript前端和Java後端的AES加密和解密JavaScript前端後端加密解密
- AES-CBC 模式加密模式加密
- 10.12.3下Cornerstone3.0.3親測可用,分享
- Centos 8 安裝RabbitMQ 3.8.4 (親測可用)CentOSMQ
- WinRAR怎麼去廣告(親測可用)
- nodejs常用加密方式 RSA & AESNodeJS加密
- Python AES 加密和解密(qbit)Python加密解密
- golang AES-CBC 加密解密Golang加密解密
- python AES-CBC 加密解密Python加密解密
- 逆向工程加密函式:AES加密函式
- php中aes加密和rsa加密的區別PHP加密
- 安全篇-AES/RSA加密機制加密
- 十分鐘看懂AES加密加密
- MestReNova 破解版中文+MestReNova 破解工具「親測可用」
- DaVinci Resolve Studio 18啟用補丁「親測可用」
- AutoCAD 2024破解補丁「親測可用」v2024.3
- anaconda安裝pytorch1.7.1的方法,親測可用PyTorch
- SonarQube學習(一)- 使用Docker安裝SonarQube(親測可用)Docker
- AES位元組陣列加密解密流程陣列加密解密
- delphi加密C#解密(AES-256)加密C#解密
- Linux上java解加密(AES/CBC)異常:java.lang.SecurityException: JCE cannot authenticate the provider BCLinuxJava加密ExceptionIDE
- AES線上加密解密-附AES128,192,256,CBC,CFB,ECB,OFB,PCBC各種加密解密原始碼加密解密原始碼
- pyCharm2019最新啟用碼,親測可用(win, ubuntu, mac)PyCharmUbuntuMac
- Redis服務監控之RedisLive安裝部署(親測可用)Redis
- 2023 年 PhpStorm 最新啟用教程,親測可用,永久啟用PHPORM
- AES加密 Pkcs7 (BCB模式) java後端版本與JS版本對接加密模式Java後端JS
- 前後端(PHP)使用AES對稱加密後端PHP加密
- JavaScript實現的base64加密、md5加密、sha1加密及AES加密JavaScript加密
- IntelliJ IDEA 2022.1永久破解啟用教程(最新版,親測可用)IntelliJIdea