欢迎访问宙启技术站
智能推送

Java函数实现AES加密与解密的方法及应用

发布时间:2023-10-05 11:45:15

AES(Advanced Encryption Standard)是一种对称加密算法,它可以实现对数据的加密和解密。在Java中,可以使用javax.crypto包提供的AES算法类和工具类来实现AES加密与解密。

1. 导入相关包

要使用AES算法,首先需要导入javax.crypto.Cipher和javax.crypto.spec.SecretKeySpec类。

import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;

2. 定义加密和解密方法

在Java中,可以使用AES算法的ECB模式进行加密和解密。下面是示例代码:

// 加密方法
public static String encrypt(String plainText, String secretKey) {
    try {
        SecretKeySpec keySpec = new SecretKeySpec(secretKey.getBytes(), "AES");
        Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
        cipher.init(Cipher.ENCRYPT_MODE, keySpec);
        byte[] encrypted = cipher.doFinal(plainText.getBytes());
        return Base64.getEncoder().encodeToString(encrypted);
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return null;
}

// 解密方法
public static String decrypt(String encryptedText, String secretKey) {
    try {
        SecretKeySpec keySpec = new SecretKeySpec(secretKey.getBytes(), "AES");
        Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
        cipher.init(Cipher.DECRYPT_MODE, keySpec);
        byte[] decrypted = cipher.doFinal(Base64.getDecoder().decode(encryptedText));
        return new String(decrypted);
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return null;
}

3. 使用示例

可以通过调用encrypt方法对需要加密的数据进行加密,并通过调用decrypt方法对加密后的数据进行解密。下面是示例代码:

public static void main(String[] args) {
    String plainText = "Hello, world!"; // 需要加密的数据
    String secretKey = "abcdef1234567890"; // 密钥

    // 加密
    String encryptedText = encrypt(plainText, secretKey);
    System.out.println("加密后的数据:" + encryptedText);

    // 解密
    String decryptedText = decrypt(encryptedText, secretKey);
    System.out.println("解密后的数据:" + decryptedText);
}

4. 应用场景

AES加密算法广泛应用于数据的安全传输和存储,常见的应用场景有:

- 网络通信加密:在进行网络通信时,使用AES加密算法对数据进行加密,提高传输数据的安全性,防止数据被窃取或篡改。

- 数据库存储加密:在将敏感数据存储到数据库中时,使用AES加密算法对数据进行加密,提高数据的机密性,防止数据泄露。

- 文件保护加密:在将文件存储到本地或云端时,使用AES加密算法对文件进行加密,确保文件内容的机密性,防止文件被恶意读取。

总结:通过上述步骤,可以实现AES加密与解密的方法,并应用于不同的场景中,提高数据的安全性和机密性。