q924152020

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));
	}
}

  

发表于 2019-12-16 15:15  NapoleonKo  阅读(1074)  评论(0编辑  收藏  举报
 

分类:

技术点:

相关文章:

  • 2021-06-27
  • 2021-12-19
  • 2022-01-18
  • 2022-02-16
  • 2022-01-01
  • 2021-12-22
  • 2023-02-21
  • 2021-12-16
猜你喜欢
  • 2022-12-23
  • 2021-12-19
  • 2021-08-08
  • 2022-01-08
  • 2022-02-06
  • 2021-12-04
  • 2022-12-23
相关资源
相似解决方案