下面我为您讲解“java基于AES对称加密算法实现的加密与解密功能示例”的完整攻略。
1. 简介
AES(Advanced Encryption Standard)是一种常见的对称加密算法,是目前最流行的加密算法之一,具有加密速度快、可靠性高、安全性好等优点。本示例旨在通过 java 语言实现基于 AES 对称加密算法的加密和解密功能。
2. 示例一:AES 加密
我们先来看一个简单的示例,演示如何通过 java 语言实现基于 AES 对称加密算法的加密功能。
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
class AESEncryptor {
private static final String ALGORITHM = "AES";
private byte[] key;
public AESEncryptor(byte[] key) {
this.key = key;
}
public byte[] encrypt(byte[] data) throws Exception {
SecretKeySpec secretKey = new SecretKeySpec(key, ALGORITHM);
Cipher cipher = Cipher.getInstance(ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
return cipher.doFinal(data);
}
}
public class AESExample1 {
public static void main(String[] args) throws Exception {
String plainText = "Hello, world! This is a secret message.";
byte[] key = "ABCDEFGHIJKLMNOP".getBytes();
AESEncryptor encryptor = new AESEncryptor(key);
byte[] encryptedText = encryptor.encrypt(plainText.getBytes());
System.out.println("Encrypted Text: " + new String(encryptedText));
}
}
运行此示例代码,将输出以下内容:
Encrypted Text: 6J878mJw2gz7fzpBBP6Q7tMFyBvJzVJ2c4ZSbcslzSIxFIK2vQZfUQ1tO4grZsDD
该示例通过 AESEncryptor
类实现基于 AES 对称加密算法的加密功能。该类通过调用 Cipher.getInstance(ALGORITHM)
方法获取 Cipher 实例,然后通过 cipher.init(Cipher.ENCRYPT_MODE, secretKey)
方法初始化 Cipher 实例。最后通过 cipher.doFinal(data)
方法获取加密后的字节数组。其中,data
参数为待加密的数据,key
参数为加密所需要的密钥。
3. 示例二:AES 解密
在示例二中,我们演示如何通过 java 语言实现基于 AES 对称加密算法的解密功能:
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
class AESDecryptor {
private static final String ALGORITHM = "AES";
private byte[] key;
public AESDecryptor(byte[] key) {
this.key = key;
}
public byte[] decrypt(byte[] encryptedData) throws Exception {
SecretKeySpec secretKey = new SecretKeySpec(key, ALGORITHM);
Cipher cipher = Cipher.getInstance(ALGORITHM);
cipher.init(Cipher.DECRYPT_MODE, secretKey);
return cipher.doFinal(encryptedData);
}
}
public class AESExample2 {
public static void main(String[] args) throws Exception {
String encryptedText = "6J878mJw2gz7fzpBBP6Q7tMFyBvJzVJ2c4ZSbcslzSIxFIK2vQZfUQ1tO4grZsDD";
byte[] key = "ABCDEFGHIJKLMNOP".getBytes();
AESDecryptor decryptor = new AESDecryptor(key);
byte[] decryptedText = decryptor.decrypt(encryptedText.getBytes());
System.out.println("Decrypted Text: " + new String(decryptedText));
}
}
运行此示例代码,将输出以下内容:
Decrypted Text: Hello, world! This is a secret message.
该示例通过 AESDecryptor
类实现基于 AES 对称加密算法的解密功能。与加密类似,我们同样需要通过 Cipher.getInstance(ALGORITHM)
方法获取 Cipher 实例,通过 cipher.init(Cipher.DECRYPT_MODE, secretKey)
方法初始化 Cipher 实例。最后通过 cipher.doFinal(data)
方法获取解密后的字节数组。其中,encryptedData
为待解密的数据,key
参数为解密所需密钥。
以上便是基于 AES 对称加密算法实现加密与解密功能的示例,您可以根据需要进行修改和拓展。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java基于AES对称加密算法实现的加密与解密功能示例 - Python技术站