全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Java AES加密解密的简单实现方法

废话不多说,直接上代码

package com.mstf.aes;
 
import java.io.UnsupportedEncodingException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
 
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
 
/**
 * AES加密解密
 * @author ceet
 *
 */
public class AESUntil {
 /**
  * 加密
  *
  *
  */
 public static String Ecodes(String content, String key) {
  if (content == null || content.length() < 1)
   return null;
 
  try {
   KeyGenerator kgen = KeyGenerator.getInstance("AES");
   kgen.init(128, new SecureRandom(key.getBytes()));
   SecretKey secretKey = kgen.generateKey();
   byte[] enCodeFormat = secretKey.getEncoded();
   SecretKeySpec secretKeySpec = new SecretKeySpec(enCodeFormat, "AES");
   Cipher cipher = Cipher.getInstance("AES");
   byte[] byteContent = content.getBytes("utf-8");
   cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);
   byte[] byteRresult = cipher.doFinal(byteContent);
   StringBuffer sb = new StringBuffer();
   for (int i = 0; i < byteRresult.length; i++) {
    String hex = Integer.toHexString(byteRresult[i] & 0xFF);
    if (hex.length() == 1) {
     hex = '0' + hex;
    }
    sb.append(hex.toUpperCase());
   }
   return sb.toString();
  } catch (NoSuchAlgorithmException e) {
   e.printStackTrace();
  } catch (NoSuchPaddingException e) {
   e.printStackTrace();
  } catch (InvalidKeyException e) {
   e.printStackTrace();
  } catch (UnsupportedEncodingException e) {
   e.printStackTrace();
  } catch (IllegalBlockSizeException e) {
   e.printStackTrace();
  } catch (BadPaddingException e) {
   e.printStackTrace();
  }
  return null;
 }
 
 /**
  * 解密
  *
  *
  */
 public static String Dcodes(String content, String key) {
  if (content == null || content.length() < 1)
   return null;
 
  if (content.trim().length() < 19)
   return content;
 
  byte[] byteRresult = new byte[content.length() / 2];
  for (int i = 0; i < content.length() / 2; i++) {
   int high = Integer.parseInt(content.substring(i * 2, i * 2 + 1), 16);
   int low = Integer.parseInt(content.substring(i * 2 + 1, i * 2 + 2), 16);
   byteRresult[i] = (byte) (high * 16 + low);
  }
  try {
   KeyGenerator kgen = KeyGenerator.getInstance("AES");
   kgen.init(128, new SecureRandom(key.getBytes()));
   SecretKey secretKey = kgen.generateKey();
   byte[] enCodeFormat = secretKey.getEncoded();
   SecretKeySpec secretKeySpec = new SecretKeySpec(enCodeFormat, "AES");
   Cipher cipher = Cipher.getInstance("AES");
   cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);
   byte[] result = cipher.doFinal(byteRresult);
   return new String(result);
  } catch (NoSuchAlgorithmException e) {
   e.printStackTrace();
  } catch (NoSuchPaddingException e) {
   e.printStackTrace();
  } catch (InvalidKeyException e) {
   e.printStackTrace();
  } catch (IllegalBlockSizeException e) {
   e.printStackTrace();
  } catch (BadPaddingException e) {
   e.printStackTrace();
  }
  return null;
 }
 
 /**
  * 详细解释
  * 【ceet为加密的密匙】
  * 【admin为需要加密的字符串】
  * 【67BE5ED967DBA9B9810C295BE6DEF5D5为解密后的字符串】
  * 【如果更改ceet,那么67BE5ED967DBA9B9810C295BE6DEF5D5字符串会发生变化】
  * @param args
  */
 // 调用测试
 public static void main(String[] args) {
  System.out.println("需要加密的内容:"+Ecodes("admin", "ceet"));
  System.out.println("经过解密的内容:"+Dcodes("67BE5ED967DBA9B9810C295BE6DEF5D5", "ceet"));
 }
}

以上这篇Java AES加密解密的简单实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# java  # rsa加密解密实现  # Java使用AES加密和解密的实例详解  # Java AES加密和解密教程  # Java实现AES加密和解密方式完整示例  # JAVA中AES对称加密和解密过程  # 使用Java实现加密之AES加解密  # Java中使用Hutool进行AES加密解密的方法举例  # java AES加密/解密实现完整代码(附带源码)  # 给大家  # 加密解密  # 希望能  # 这篇  # 多说  # 小编  # 大家多多  # SecretKeySpec  # AES  # author  # ceet  # KeyGenerator  # IllegalBlockSizeException  # Cipher  # spec  # SecretKey  # NoSuchPaddingException  # public  # length  # null 


相关文章: 网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  如何通过宝塔面板实现本地网站访问?  nginx修改上传文件大小限制的方法  建站168自助建站系统:快速模板定制与SEO优化指南  青浦网站制作公司有哪些,苹果官网发货地是哪里?  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  如何在橙子建站上传落地页?操作指南详解  网站制作新手教程,新手建设一个网站需要注意些什么?  如何获取上海专业网站定制建站电话?  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?  个人摄影网站制作流程,摄影爱好者都去什么网站?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  ,制作一个手机app网站要多少钱?  完全自定义免费建站平台:主题模板在线生成一站式服务  如何在IIS中新建站点并解决端口绑定冲突?  如何在IIS中配置站点IP、端口及主机头?  建站之星体验版:智能建站系统+响应式设计,多端适配快速建站  视频网站制作教程,怎么样制作优酷网的小视频?  如何快速生成橙子建站落地页链接?  网站制作壁纸教程视频,电脑壁纸网站?  定制建站策划方案_专业建站与网站建设方案一站式指南  建站之星官网登录失败?如何快速解决?  黑客入侵网站服务器的常见手法有哪些?  开封网站制作公司,网络用语开封是什么意思?  如何在阿里云虚拟服务器快速搭建网站?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?  如何选择可靠的免备案建站服务器?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  如何在云指建站中生成FTP站点?  如何通过多用户协作模板快速搭建高效企业网站?  装修招标网站设计制作流程,装修招标流程?  如何在Windows虚拟主机上快速搭建网站?  西安专业网站制作公司有哪些,陕西省建行官方网站?  c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】  高防服务器如何保障网站安全无虞?  如何生成腾讯云建站专用兑换码?  建站上传速度慢?如何优化加速网站加载效率?  郑州企业网站制作公司,郑州招聘网站有哪些?  一键制作网站软件下载安装,一键自动采集网页文档制作步骤?  Android自定义listview布局实现上拉加载下拉刷新功能  娃派WAP自助建站:免费模板+移动优化,快速打造专业网站  如何在企业微信快速生成手机电脑官网?  如何在新浪SAE免费搭建个人博客?  如何将凡科建站内容保存为本地文件?  青岛网站建设如何选择本地服务器?  北京网站制作公司哪家好一点,北京租房网站有哪些? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。