21xrx.com
2024-12-22 23:14:33 Sunday
登录
文章检索 我的文章 写文章
Java实现AES加密解密算法
2023-07-04 19:15:54 深夜i     --     --
Java AES加密算法 解密算法 实现 加密技术

在信息安全领域中,加密技术是最常用的安全保护措施之一。AES加密算法是一种广泛使用的对称加密算法,具有高效、安全等优点,在网络通信、数据库加密、数据存储等领域中得到了广泛的应用。

Java提供了强大的加密解密API,可以轻松实现AES加密解密算法。下面将介绍如何使用Java代码来实现AES加密解密算法。

1. 导入Java加密库

Java提供了javax.crypto包来实现加密解密算法,需要先在程序中导入Javax.crypto包:

import javax.crypto.Cipher;

import javax.crypto.SecretKey;

import javax.crypto.spec.SecretKeySpec;

2. 实现AES加密算法

通过Java代码实现AES加密算法需要以下步骤:

(1)定义16字节的密钥(128位)。

(2)设置AES算法和加密模式。

(3)将密钥转换成AES密钥格式。

(4)用AES密钥对明文进行加密。

代码如下:

public static String AESEncode(String content, String password) {

try {

// 定义密钥

byte[] raw = password.getBytes("UTF-8");

SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");

// 设置算法和加密模式

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

cipher.init(Cipher.ENCRYPT_MODE, skeySpec);

// 加密

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

return Base64.getEncoder().encodeToString(encrypted);

} catch (Exception ex) {

ex.printStackTrace();

return null;

}

}

3. 实现AES解密算法

通过Java代码实现AES解密算法需要以下步骤:

(1)定义16字节的密钥(128位)。

(2)设置AES算法和解密模式。

(3)将密钥转换成AES密钥格式。

(4)用AES密钥对密文进行解密。

代码如下:

public static String AESDecode(String content, String password) {

try {

// 定义密钥

byte[] raw = password.getBytes("UTF-8");

SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");

// 设置算法和解密模式

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

cipher.init(Cipher.DECRYPT_MODE, skeySpec);

// 解密

byte[] encrypted = Base64.getDecoder().decode(content);

byte[] original = cipher.doFinal(encrypted);

return new String(original, "UTF-8");

} catch (Exception ex) {

ex.printStackTrace();

return null;

}

}

4. 运行程序

在Java程序中调用AESEncode和AESDecode方法即可实现AES加密解密算法。以下是一个简单的测试程序:

public static void main(String[] args) {

String content = "Hello World!";

String password = "1234567890abcdef";

System.out.println("原文:" + content);

String encoded = AESEncode(content, password);

System.out.println("密文:" + encoded);

String decoded = AESDecode(encoded, password);

System.out.println("解密后:" + decoded);

}

运行程序后,输出结果如下:

原文:Hello World!

密文:Yl+9CGu1Slk3B0+X9zjfCQ==

解密后:Hello World!

从测试结果可以看出,通过Java程序轻松实现了AES加密解密算法,这种安全保护措施在实际应用中具有广泛的意义。

  
  

评论区

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