一、常用的加密/解密算法
1.Base64
严格来说,Base64不是一种加密/解密算法,而是一种编码方式,多用于解决中文乱码中。
常用场景:对文件、URL等进行Base64编码,以字符串方式发送给对方;对方在进行解码。
2.AES
AES是目前用的比较广泛的一种加密/解密算法。先来一段代码
public class AESUtil {
@Value("${aes.key}")
String key;
byte[] iv = { 0x31, 0x35, 0x36, 0x33, 0x34, 0x33, 0x32, 0x31, 0x37, 0x37, 0x39, 0x35, 0x34, 0x33, 0x30, 0x31 };
public String encrypt(String content) {
try {
Security.addProvider(new BouncyCastleProvider());
Key secretKeySpec = new SecretKeySpec(key.getBytes(), "AES");
Cipher in = Cipher.getInstance("AES/CBC/PKCS7Padding","BC");//算法/模式/补码方式
in.init(Cipher.ENCRYPT_MODE, secretKeySpec, new IvParameterSpec(iv));//使用CBC模式,需要一个向量iv,可增加加密算法的强度
byte[] enc = in.doFinal(content.getBytes());