在Java中,常用的对称加密算法包括:
DES (Data Encryption Standard):
使用56位密钥,速度较快,但安全性较低。
3DES (Triple Data Encryption Standard):
基于DES,使用三个不同的密钥进行三次加密,提高了安全性。
AES (Advanced Encryption Standard):
目前最广泛使用的对称加密标准,支持128位、192位和256位密钥长度,具有高安全性和高效率。
IDEA (International Data Encryption Algorithm):
使用128位密钥,是一种较早期的加密算法。
Blowfish:
支持变长密钥,在性能和安全性之间有良好的平衡。
PBE (Password-Based Encryption):
结合消息摘要算法和对称加密算法,但推荐的工作模式CBC已丧失安全性,不推荐使用。
这些算法在Java中可以通过`Cipher`类进行加密和解密操作。例如,使用AES加密的代码如下:
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;
public class AESExample {
public static void main(String[] args) throws Exception {
String algorithm = "AES";
String secretKey = "45678"; // 16 bytes for AES-128
String data = "Hello, World!";
Cipher cipher = Cipher.getInstance(algorithm);
cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(secretKey.getBytes(), algorithm));
byte[] encryptedBytes = cipher.doFinal(data.getBytes());
String encryptedData = Base64.getEncoder().encodeToString(encryptedBytes);
System.out.println("Encrypted Data: " + encryptedData);
}
}
请根据具体需求选择合适的算法,并注意密钥管理和加密模式的选择,以确保数据的安全性