Java实现AES对称加密算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java实现AES对称加密算法Java代码实现
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
public class AesEntriptor {
private Cipher encryptCipher; // 负责加密⼯作
private Cipher decryptCipher; // 负责解密⼯作
public AesEntriptor(String rules) throws Exception {
// 1.实例化AES算法密钥⽣成器
KeyGenerator keygen = KeyGenerator.getInstance("AES");
// 2.根据传⼊的字节数组,⽣成⼀个128位的随机源
keygen.init(128, new SecureRandom(rules.getBytes()));
// 3.⽣成密钥
SecretKey secretKey = keygen.generateKey();
// 4.⽣成Cipher对象,指定其⽀持AES算法
encryptCipher = Cipher.getInstance("AES");
decryptCipher = Cipher.getInstance("AES");
// 5.初始化加密对象及解密对象
encryptCipher.init(Cipher.ENCRYPT_MODE, secretKey);
decryptCipher.init(Cipher.DECRYPT_MODE, secretKey);
}
public byte[] encrypt(byte[] source) throws Exception {
return encryptCipher.doFinal(source);
}
public byte[] decrypt(byte[] source) throws Exception {
return decryptCipher.doFinal(source);
}
public static void main(String[] args) throws Exception {
AesEntriptor aesEntriptor = new AesEntriptor("123456");
byte[] encrypt = aesEntriptor.encrypt("Napolean".getBytes());
byte[] decrypt = aesEntriptor.decrypt(encrypt);
System.out.println(new String(decrypt));
}
}。