21xrx.com
2024-09-17 04:41:40 Tuesday
登录
文章检索 我的文章 写文章
Java实现AES加密解密
2023-07-05 11:55:37 深夜i     --     --
Java AES 加密 解密

随着互联网技术的迅速发展,数据的安全性越来越受到重视,加密技术成为保护数据安全的重要手段。AES(Advanced Encryption Standard)是一种常用的对称加密算法,Java语言也提供了实现AES加密解密的工具类,方便开发人员进行数据加密与解密操作。

下面将介绍如何使用Java实现AES加密解密。

1、加密

在Java中,使用AES加密需要先创建一个密钥对象,然后使用密钥对象创建加密器对象,最后调用加密器对象的encrypt方法进行加密操作。以下是使用Java实现AES加密的示例代码:


// 待加密的数据

String plainText = "Hello, World!";

// 密钥长度为128位

String key = "0123456789abcdef";

// 创建密钥对象

SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes("UTF-8"), "AES");

// 创建加密器对象

Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");

cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);

// 加密

byte[] encrypted = cipher.doFinal(plainText.getBytes("UTF-8"));

// 转换为字符串

String encrptedStr = new String(Base64.getEncoder().encode(encrypted));

System.out.println("加密后数据:" + encrptedStr);

在上述示例代码中,待加密的数据是"Hello, World!",密钥长度为128位,使用UTF-8编码方式将密钥转换成字节数组,然后创建密钥对象。加密方式为AES/ECB/PKCS5Padding,创建加密器对象后使用密钥对象对其进行初始化,然后使用加密器对象的doFinal方法进行加密操作,最后将加密结果转换成字符串输出。

2、解密

解密操作和加密操作类似,也需要创建密钥对象和解密器对象,然后调用解密器对象的decrypt方法进行解密操作。以下是Java实现AES解密的示例代码:


// 解密的数据,即加密后的数据

String encryptedStr = "0GdIxyvKl8bIWHdTNWHRVPsfed0fvxK7nrqX4Z1acOg=";

// 密钥长度为128位

String key = "0123456789abcdef";

// 创建密钥对象

SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes("UTF-8"), "AES");

// 创建解密器对象

Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");

cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);

// 解密

byte[] decrypted = cipher.doFinal(Base64.getDecoder().decode(encryptedStr.getBytes("UTF-8")));

// 转换为字符串

String decryptedStr = new String(decrypted, "UTF-8");

System.out.println("解密后数据:" + decryptedStr);

在上述示例代码中,加密后的数据为"0GdIxyvKl8bIWHdTNWHRVPsfed0fvxK7nrqX4Z1acOg=",密钥长度为128位,使用UTF-8编码方式将密钥转换成字节数组,然后创建密钥对象。加密方式为AES/ECB/PKCS5Padding,创建解密器对象后使用密钥对象对其进行初始化,然后使用解密器对象的doFinal方法进行解密操作,最后将解密结果转换成字符串输出。

3、总结

Java提供了实现AES加密解密的工具类,方便开发人员进行数据加密与解密操作。在实际项目中,可以根据具体需求选择适当的加密方式和密钥长度,以保证数据的安全性。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复