AESEncrypter加密算法代码示例详解编程语言
2023-06-13 09:20:44 时间
* @Date 2014年3月26日
* @Comments (美国软件出口限制,AES算法,秘钥长度大于128位时需替换对应jdk版本的policy文件: ${java_home}/jre/lib/security/local_policy.jar 和 ${java_home}/jre/lib/security/US_export_policy.jar)
public class AESEncrypter {
private static final String ENCODEING = "UTF-8";
private static final String ALGORITHM = "AES";
private static final String KEY = "2016aes";
private static Cipher cipher_encrypt = null;//加密密码器
private static Cipher cipher_decrypt = null;//解密密码器
static{
try {
KeyGenerator kgen = KeyGenerator.getInstance(ALGORITHM);
SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG" );
secureRandom.setSeed(KEY.getBytes());
kgen.init(128, secureRandom);
//kgen.init(256, secureRandom);//256位长度秘钥
SecretKey secretKey = kgen.generateKey();
byte[] secretKeyEncoded = secretKey.getEncoded();
SecretKeySpec sks = new SecretKeySpec(secretKeyEncoded, ALGORITHM);
cipher_encrypt = Cipher.getInstance(ALGORITHM);
cipher_encrypt.init(Cipher.ENCRYPT_MODE, sks);
cipher_decrypt = Cipher.getInstance(ALGORITHM);
cipher_decrypt.init(Cipher.DECRYPT_MODE, sks);
} catch (Exception e) {
e.printStackTrace();
/**
* 加密
* @param content 需要加密的内容
* @return
public static String encrypt(String content) throws Exception{
byte[] result = cipher_encrypt.doFinal(content.getBytes(ENCODEING));
// return Base64.encodeBase64String(result);
return new String(Base64.getEncoder().encode(result));
/**
* 解密
* @param content
* @return
* @throws Exception
public static String decrypt(String content) throws Exception {
byte[] result = cipher_decrypt.doFinal(Base64.getDecoder().decode(content));
// byte[] result = cipher_decrypt.doFinal(Base64.decodeBase64(content));
return new String(result,ENCODEING);
/**
* 对字符串数组里的字符串加密
* @param content
* @return
* @throws Exception
public static String[] encryptStrArray(String ...content) throws Exception{
for (int i = 0; i content.length; i++) {
byte[] result = cipher_encrypt.doFinal(content[i].getBytes(ENCODEING));
// String encryptedStr = Base64.encodeBase64String(result);
String encryptedStr = new String(Base64.getEncoder().encode(result));
content[i] = encryptedStr;
return content;
public static void main(String[] args) throws Exception { String content = "公布修改五部法律"; //加密 System.out.println("加密前:" + content); String codeStr = encrypt(content); System.out.println("加密后:" + codeStr); System.out.println("加密后 length:" + codeStr.getBytes("UTF-8").length); //解密 String decryptResult = decrypt(codeStr); System.out.println("解密后:" + decryptResult); System.out.println("done!"); /** * 加密前:公布修改五部法律 加密后:B2Pu0KBO/FGuttUxSpT9/544jgp4OEoL8L4o4N85a0I= 加密后 length:44 解密后:公布修改五部法律 done! }
public static void main(String[] args) throws Exception { String content = "公布修改五部法律"; //加密 System.out.println("加密前:" + content); String codeStr = encrypt(content); System.out.println("加密后:" + codeStr); System.out.println("加密后 length:" + codeStr.getBytes("UTF-8").length); //解密 String decryptResult = decrypt(codeStr); System.out.println("解密后:" + decryptResult); System.out.println("done!"); /** * 加密前:公布修改五部法律 加密后:B2Pu0KBO/FGuttUxSpT9/544jgp4OEoL8L4o4N85a0I= 加密后 length:44 解密后:公布修改五部法律 done! }
15252.html
cgojava相关文章
- 简单文件搜索Python代码详解编程语言
- python通过wxPython打开一个音频文件并播放的代码详解编程语言
- tornado登陆豆瓣代码实例详解编程语言
- 发送email 带附件的Python代码详解编程语言
- Python在windows下模拟按键和鼠标点击代码详解编程语言
- 12个用得着的JQuery代码片段详解编程语言
- 查看Tomcat内存使用情况的JSP代码详解编程语言
- 禁用右键单击、F5刷新jquery代码详解编程语言
- java版微信机器人代码详解编程语言
- java中数字与ASCII码的相互转换的代码详解编程语言
- Java实现的utf8,gbk,unicode编码相互转换的代码详解编程语言
- java操作csv文件相关代码详解编程语言
- Java实现一个简单 HTTP 服务器的代码详解编程语言
- Java实现倒计时代码详解编程语言
- Java发送邮件,带抄送和附件的代码详解编程语言
- [四] java虚拟机JVM编译器编译代码简介 字节码指令实例 代码到底编译成了什么形式详解编程语言
- Java volatile 的测试(Java代码实战-004)详解编程语言
- PHP多进程学习(三)__代码案例来了解父进程与子进程的执行顺序详解编程语言
- jquery实现比较靠谱的手风琴代码详解编程语言