AES加密解密 SHA1、SHA加密 MD5加密
二话不说马上附上代码:

package com.luo.util;
import java.io.UnsupportedEncodingException;
import java.security.InvalidKeyException;
import java.security.MessageDigest;
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;public class DecriptUtil {/** * @author:罗国辉 * @date: 2015年12月17日 上午9:16:22 * @description: AES加密* @parameter: str:待加密字符串,secretKeyBase:用于生成密钥的基础字符串* @return:  加密字节数组**/public static byte[] encryptAES(String str, String secretKeyBase) {try {KeyGenerator kgen = KeyGenerator.getInstance("AES");kgen.init(128, new SecureRandom(secretKeyBase.getBytes()));SecretKey secretKey = kgen.generateKey();byte[] enCodeFormat = secretKey.getEncoded();SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");Cipher cipher = Cipher.getInstance("AES");// 创建密码器byte[] byteContent = str.getBytes("UTF-8");cipher.init(Cipher.ENCRYPT_MODE, key);// 初始化byte[] result = cipher.doFinal(byteContent);return result; // 加密} 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;}/** * @author:罗国辉 * @date: 2015年12月17日 上午9:16:22 * @description: AES解密* @parameter: strByteArray:待解密字节数组,* @parameter: secretKeyBase:用于生成密钥的基础字符串, 需要注意的是EAS是对称加密,所以secretKeyBase在加密解密时要一样的* @return:  解密后字符串**/public static String decryptAES(byte[] strByteArray, String secretKeyBase) {try {KeyGenerator kgen = KeyGenerator.getInstance("AES");kgen.init(128, new SecureRandom(secretKeyBase.getBytes()));SecretKey secretKey = kgen.generateKey();byte[] enCodeFormat = secretKey.getEncoded();SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");Cipher cipher = Cipher.getInstance("AES");// 创建密码器cipher.init(Cipher.DECRYPT_MODE, key);// 初始化String result = new String(cipher.doFinal(strByteArray),"UTF-8");return 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();} catch (UnsupportedEncodingException e) {e.printStackTrace();}return null;}/** * @author:罗国辉 * @date: 2015年12月17日 上午9:24:43 * @description: SHA、SHA1加密* @parameter:   str:待加密字符串* @return:  加密串**/public static String SHA1(String str) {try {MessageDigest digest = java.security.MessageDigest.getInstance("SHA-1"); //如果是SHA加密只需要将"SHA-1"改成"SHA"即可digest.update(str.getBytes());byte messageDigest[] = digest.digest();// Create Hex StringStringBuffer hexStr = new StringBuffer();// 字节数组转换为 十六进制 数for (int i = 0; i < messageDigest.length; i++) {String shaHex = Integer.toHexString(messageDigest[i] & 0xFF);if (shaHex.length() < 2) {hexStr.append(0);}hexStr.append(shaHex);}return hexStr.toString();} catch (NoSuchAlgorithmException e) {e.printStackTrace();}return null;}/** * @author:罗国辉 * @date: 2015年12月17日 上午9:24:43 * @description: MD5加密* @parameter:   str:待加密字符串* @return:  加密串**/public static String MD5(String str) {try {// 获得MD5摘要算法的 MessageDigest 对象MessageDigest mdInst = MessageDigest.getInstance("MD5");// 使用指定的字节更新摘要mdInst.update(str.getBytes());// 获得密文byte[] md = mdInst.digest();// 把密文转换成十六进制的字符串形式StringBuffer hexString = new StringBuffer();// 字节数组转换为 十六进制 数for (int i = 0; i < md.length; i++) {String shaHex = Integer.toHexString(md[i] & 0xFF);if (shaHex.length() < 2) {hexString.append(0);}hexString.append(shaHex);}return hexString.toString();} catch (NoSuchAlgorithmException e) {e.printStackTrace();}return null;}}

AES加密解密SHA1、SHA加密MD5加密相关推荐

  1. c语言字符串md5加密解密,.net core使用MD5加密解密字符串

    本文实例为大家分享了.net core使用MD5加密解密字符串的具体代码,供大家参考,具体内容如下 /// /// 加密 /// /// 要加密的文本 /// 秘钥 /// public static ...

  2. android php md5加密解密,Android中的md5加密怎么与php md5加密保持一致

    Android中的md5加密怎么与php md5加密保持一致 发布时间:2020-12-05 15:27:37 来源:亿速云 阅读:72 作者:Leah 这期内容当中小编将会给大家带来有关Androi ...

  3. java实现php md5加密解密,java_Java后端实现MD5加密的方法,前言 在我们开发是要考虑这 - phpStudy...

    Java后端实现MD5加密的方法 前言 在我们开发是要考虑这个功能,当用户忘记密码的情况下,我们需要动态的发给他一个6位的随机密码,通过即时通,短信,微信等.并同时修改数据库中的原密码为这6位的随机密 ...

  4. md5视频加密 java代码,Java实现MD5加密及解密的代码实例分享

    基础:MessageDigest类的使用 其实要在Java中完成MD5加密,MessageDigest类大部分都帮你实现好了,几行代码足矣: /** * 对字符串md5加密 * * @param st ...

  5. php md5加密 java代码_Java实现MD5加密及解密的代码实例分享

    基础:MessageDigest类的使用 其实要在Java中完成MD5加密,MessageDigest类大部分都帮你实现好了,几行代码足矣:/** * 对字符串md5加密 * * @param str ...

  6. 加密解密系列文章之 - ASCII 加密解密(最简单的加密解密) 上

    前言: 首先.在这里声明.本人没学过加密解密专业以及没有对加密解密做过任何的系统学习.文章用来记录我自己学到的加密解密的一些我理解的东西,有错误之处欢迎大家指出.谢谢. 加密解密.在以前我的眼里.是灰 ...

  7. 加密解密系列文章之 - ASCII 加密解密(最简单的加密解密) 下

    继上一篇 加密解密系列文章之 - ASCII 加密解密(最简单的加密解密) 上 的下篇. 我在 上 篇里 已经给大家说了最基本的ASCII 加密 解密的东西.然后再最后 我们说了ASCII加密解密的问 ...

  8. Java加密解密算法-SHA加密

    package algo; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /** ...

  9. C# 加密解密(DES,3DES,MD5,Base64) 类

    public sealed class EncryptUtils{#region Base64加密解密/// <summary>/// Base64加密/// </summary&g ...

最新文章

  1. 10年内,这19个关键技术将改变世界!
  2. 使用blowery.Web.HttpCompress.dll对aspx压缩
  3. 7种从头开始免费学习编程的方法
  4. Mybatis中的@SelectKey注解
  5. ubuntu16 安装opencv
  6. 周志华-机器学习.pdf 学习心得 附整理材料
  7. C语言程序的语法规范,C语言程序结构和语法规则
  8. 微信公众号推送模板消息,推送个人消息,给指定的人发送模板消息
  9. Stata:图示交互效应-调节效应
  10. Java学习第二十四天
  11. C primer Plus 9.3.4 递归和倒序计算 DE3
  12. html静态页面作业——海贼王中乔巴漫画(5页) 学生动漫网页设计模板下载 海贼王大学生HTML网页制作作品 简单漫画网页设计成品
  13. 【瀑布流插件】vue-masonry
  14. PV操作与前趋图题型
  15. 201671010412 郭佳 实验三 作业互评与改进
  16. 电商项目day11(商品搜索功能实现排序结果分页)
  17. 目前最流畅的android手机,目前公认最流畅的4大手机系统,第一当之无愧,用三年不卡顿!...
  18. 百度地图系列02——地图移动到指定点
  19. TeX/LaTeX 常用宏包简介
  20. python淘宝秒杀_python实现简单淘宝秒杀功能

热门文章

  1. AI笔记: 数学基础之向量组的线性表示与线性相关
  2. OFGP 协议跨链解决方案
  3. 类中成员方法和实例方法
  4. Ble Mesh技术(一)之概览
  5. iQOO Neo7智能手机;索尼“地球蓝”LinkBuds S耳机;卡西欧多款40周年纪念款手表 | 科技新品...
  6. window系统CMD查看内存使用情况
  7. 帮转|腾讯云市场新版上线:大不同
  8. static final常量变量的正确书写规范
  9. 关于 Python2 和 Python3 中的 Unicode 问题。
  10. Excel if及ifs函数用法