全网整合营销服务商

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

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

Java使用Hutool实现AES、DES加密解密的方法

在Java世界中,AES、DES加密解密需要使用Cipher对象构建加密解密系统,Hutool中对这一对象做再包装,简化了加密解密过程。

介绍

AES和DES同属对称加密算法,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。

在Java世界中,AES、DES加密解密需要使用Cipher对象构建加密解密系统,Hutool中对这一对象做再包装,简化了加密解密过程。

引入Hutool

<dependency>
  <groupId>com.xiaoleilu</groupId>
  <artifactId>hutool-all</artifactId>
  <version>3.0.9</version>
</dependency>

使用

AES加密解密

String content = "test中文";

//随机生成密钥
byte[] key = SecureUtil.generateKey(SymmetricAlgorithm.AES.getValue()).getEncoded();

//构建
AES aes = SecureUtil.aes(key);

//加密
byte[] encrypt = aes.encrypt(content);
//解密
byte[] decrypt = aes.decrypt(encrypt);

//加密为16进制表示
String encryptHex = des.encryptHex(content);
//解密为原字符串
String decryptStr = des.decryptStr(encryptHex);

DES加密解密

DES的使用方式与AES基本一致

String content = "test中文";

//随机生成密钥
byte[] key = SecureUtil.generateKey(SymmetricAlgorithm.DES.getValue()).getEncoded();

//构建
DES des = SecureUtil.des(key);

//加密解密
byte[] encrypt = des.encrypt(content);
byte[] decrypt = des.decrypt(encrypt);

//加密为16进制,解密为原字符串
String encryptHex = des.encryptHex(content);
String decryptStr = des.decryptStr(encryptHex);

更多

Hutool中针对JDK支持的所有对称加密算法做了封装,封装为SymmetricCrypto类,AES和DES两个类是此类的简化表示。通过实例化这个类传入相应的算法枚举即可使用相同方法加密解密字符串或对象。

Hutool支持的对称加密算法枚举有:

  1. AES
  2. ARCFOUR
  3. Blowfish
  4. DES
  5. DESede
  6. RC2
  7. PBEWithMD5AndDES
  8. PBEWithSHA1AndDESede
  9. PBEWithSHA1AndRC2_40

这些枚举全部在SymmetricAlgorithm中被列举

对称加密对象的使用也非常简单:

String content = "test中文";

//随机生成密钥
byte[] key = SecureUtil.generateKey(SymmetricAlgorithm.AES.getValue()).getEncoded();

//构建
SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, key);

//加密
byte[] encrypt = aes.encrypt(content);
//解密
byte[] decrypt = aes.decrypt(encrypt);

//加密为16进制表示
String encryptHex = aes.encryptHex(content);
//解密为字符串
String decryptStr = aes.decryptStr(encryptHex);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# java实现des加密解密  # java实现加密解密  # Java实现AES加密解密  # Java中使用Hutool进行AES加密解密的方法举例  # 加密解密  # 这一  # 使其  # 中对  # 收信  # 这就  # 此类  # 只有一个  # 简化了  # 用过  # 双方都  # 要使  # 使用这个  # 大家多多  # 同属  # 则需  # 原始数据  # groupId  # gt  # dependency 


相关文章: 建站之星在线版空间:自助建站+智能模板一键生成方案  海南网站制作公司有哪些,海口网是哪家的?  图册素材网站设计制作软件,图册的导出方式有几种?  如何选择建站程序?包含哪些必备功能与类型?  定制建站流程步骤详解:一站式方案设计与开发指南  网页设计网站制作软件,microsoft office哪个可以创建网页?  电脑免费海报制作网站推荐,招聘海报哪个网站多?  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  广东专业制作网站有哪些,广东省能源集团有限公司官网?  建站主机类型有哪些?如何正确选型  网站制作的方法有哪些,如何将自己制作的网站发布到网上?  常州企业建站如何选择最佳模板?  安徽网站建设与外贸建站服务专业定制方案  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?  如何在云服务器上快速搭建个人网站?  如何通过宝塔面板实现本地网站访问?  相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?  小型网站建站如何选择虚拟主机?  如何在服务器上配置二级域名建站?  微课制作网站有哪些,微课网怎么进?  大连 网站制作,大连天途有线官网?  北京企业网站设计制作公司,北京铁路集团官方网站?  济南专业网站制作公司,济南信息工程学校怎么样?  ,在苏州找工作,上哪个网站比较好?  C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换  网站制作模板下载什么软件,ppt模板免费下载网站?  如何快速生成凡客建站的专业级图册?  深圳网站制作案例,网页的相关名词有哪些?  ,交易猫的商品怎么发布到网站上去?  宁波自助建站系统如何快速打造专业企业网站?  建站之星如何开启自定义404页面避免用户流失?  临沂网站制作企业,临沂第三中学官方网站?  建站ABC备案流程中有哪些关键注意事项?  如何在橙子建站上传落地页?操作指南详解  内网网站制作软件,内网的网站如何发布到外网?  如何在建站宝盒中设置产品搜索功能?  香港服务器建站指南:免备案优势与SEO优化技巧全解析  如何在阿里云通过域名搭建网站?  c++怎么用jemalloc c++替换默认内存分配器【性能】  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  如何在阿里云服务器自主搭建网站?  如何快速查询网站的真实建站时间?  建站10G流量真的够用吗?如何应对访问高峰?  山东网站制作公司有哪些,山东大源集团官网?  如何打造高效商业网站?建站目的决定转化率  linux top下的 minerd 木马清除方法  桂林网站制作公司有哪些,桂林马拉松怎么报名?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  在线制作视频网站免费,都有哪些好的动漫网站? 

您的项目需求

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