在Java中,可以使用Java标准库中的加密和解密工具进行快速简单的字符串加密/解密。以下是一个简单的示例,使用Java标准库中的Cipher
类进行AES加密/解密。
首先,需要导入以下依赖:
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;
然后,可以创建一个加密/解密的工具类:
public class AESUtil {
private static final String ALGORITHM = "AES";
private static final String TRANSFORMATION = "AES";
public static String encrypt(String key, String data) throws Exception {
SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes(), ALGORITHM);
Cipher cipher = Cipher.getInstance(TRANSFORMATION);
cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);
byte[] encryptedBytes = cipher.doFinal(data.getBytes());
return Base64.getEncoder().encodeToString(encryptedBytes);
}
public static String decrypt(String key, String encryptedData) throws Exception {
SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes(), ALGORITHM);
Cipher cipher = Cipher.getInstance(TRANSFORMATION);
cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);
byte[] decodedBytes = Base64.getDecoder().decode(encryptedData);
byte[] decryptedBytes = cipher.doFinal(decodedBytes);
return new String(decryptedBytes);
}
}
接下来,可以使用该工具类进行加密/解密操作:
public static void main(String[] args) {
String key = "1234567812345678"; // 密钥长度必须为16、24或32字节
String data = "Hello, world!";
try {
String encryptedData = AESUtil.encrypt(key, data);
System.out.println("Encrypted data: " + encryptedData);
String decryptedData = AESUtil.decrypt(key, encryptedData);
System.out.println("Decrypted data: " + decryptedData);
} catch (Exception e) {
e.printStackTrace();
}
}
以上示例中,我们使用了AES加密算法,并使用了Java标准库中的Cipher
类进行加密/解密操作。需要注意的是,加密和解密时使用的密钥必须相同,且密钥长度必须为16、24或32字节。
此外,还可以使用其他加密算法和工具类进行加密/解密操作,例如DES、RC4、RSA等算法,以及Java标准库中的其他加密工具类。
领取专属 10元无门槛券
手把手带您无忧上云