21xrx.com
2025-03-29 02:40:11 Saturday
文章检索 我的文章 写文章
Java中实现AES加密算法的方法
2023-06-16 21:53:38 深夜i     10     0
Java AES 加密算法

Java是一种支持很多加密算法的编程语言,其中AES(Advanced Encryption Standard)就是一种流行的加密算法。AES是一种对称加密算法,意味着使用同样的密钥进行加密和解密。

下面我们来看一下Java中如何使用AES实现加密和解密。

1. 导入AES相关库

在Java中使用AES算法需要导入javax.crypto相关库,具体方法如下:

import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.security.Key;

2. 创建Key对象

使用AES加密算法需要一个密钥,因此需要创建一个Key对象。Key对象可以根据用户提供的字节数组来构建,代码如下:

byte[] keyBytes = "mySecretKey".getBytes();
Key key = new SecretKeySpec(keyBytes, "AES");

3. 创建密码器对象

在Java中使用AES算法进行加密和解密需要使用Cipher类,该类封装了加密和解密的过程。代码如下:

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

其中,getInstance()方法中传入了三个参数,分别表示加密算法、模式和填充方式。这里使用的是ECB模式和PKCS5Padding填充方式。

4. 加密和解密数据

对于需要加密的数据,可以使用以下代码进行加密:

byte[] inputBytes = "Hello World".getBytes();
cipher.init(Cipher.ENCRYPT_MODE, key);
byte[] encryptedBytes = cipher.doFinal(inputBytes);

对于需要解密的数据,可以使用以下代码进行解密:

cipher.init(Cipher.DECRYPT_MODE, key);
byte[] decryptedBytes = cipher.doFinal(encryptedBytes);

5. 完整代码

下面是使用AES算法加密和解密数据的完整代码:

import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.security.Key;
public class AESDemo {
  public static void main(String[] args) throws Exception {
    byte[] keyBytes = "mySecretKey".getBytes();
    Key key = new SecretKeySpec(keyBytes, "AES");
    Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
    byte[] inputBytes = "Hello World".getBytes();
    cipher.init(Cipher.ENCRYPT_MODE, key);
    byte[] encryptedBytes = cipher.doFinal(inputBytes);
    System.out.println("加密后的数据:" + new String(encryptedBytes));
    cipher.init(Cipher.DECRYPT_MODE, key);
    byte[] decryptedBytes = cipher.doFinal(encryptedBytes);
    System.out.println("解密后的数据:" + new String(decryptedBytes));
  }
}

6. 关键词

Java、AES、加密算法

  
  

评论区