采用AES加密算法对密码进行加密解密
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.Base64Utils;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;
public class AESUtil {
private static final String KEY_ALGORITHM = "AES";
private static final String DEFAULT_CIPHER_ALGORITHM = "AES/ECB/PKCS5Padding";
private final static Logger LOGGER = LoggerFactory.getLogger(AESUtil.class);
public static String encrypt(String content, String key) {
try {
Cipher cipher = Cipher.getInstance(DEFAULT_CIPHER_ALGORITHM);
byte[] byteContent = content.getBytes("utf-8");
cipher.init(Cipher.ENCRYPT_MODE, getSecretKey(key));
byte[] result = cipher.doFinal(byteContent);
return new String(Base64Utils.encode(result));
} catch (Exception ex) {
LOGGER.error("AES 加密失败!");
ex.printStackTrace();
}
return null;
}
public static String decrypt(String content, String key) {
try {
Cipher cipher = Cipher.getInstance(DEFAULT_CIPHER_ALGORITHM);
cipher.init(Cipher.DECRYPT_MODE, getSecretKey(key));
byte[] result = cipher.doFinal(Base64.getMimeDecoder().decode(content.getBytes()));
return new String(result, "utf-8");
} catch (Exception ex) {
LOGGER.error("AES 解密失败!");
LOGGER.error("AES 解密失败!" + ex.getMessage());
}
return null;
}
private static SecretKeySpec getSecretKey(final String key) throws Exception {
return new SecretKeySpec(key.getBytes("utf-8"), KEY_ALGORITHM);
}
public static void main(String[] args) throws Exception {
System.out.println("加密后: " + AESUtil.encrypt("123456", "5bb5d7df8b363b0f"));
System.out.println("解密后: " + decrypt("43f7poGxkySaSZyv6Eqt9A==", "5bb5d7df8b363b0f"));
}
}