AES加密解密SHA1、SHA加密MD5加密
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加密相关推荐
- c语言字符串md5加密解密,.net core使用MD5加密解密字符串
本文实例为大家分享了.net core使用MD5加密解密字符串的具体代码,供大家参考,具体内容如下 /// /// 加密 /// /// 要加密的文本 /// 秘钥 /// public static ...
- android php md5加密解密,Android中的md5加密怎么与php md5加密保持一致
Android中的md5加密怎么与php md5加密保持一致 发布时间:2020-12-05 15:27:37 来源:亿速云 阅读:72 作者:Leah 这期内容当中小编将会给大家带来有关Androi ...
- java实现php md5加密解密,java_Java后端实现MD5加密的方法,前言
在我们开发是要考虑这 - phpStudy...
Java后端实现MD5加密的方法 前言 在我们开发是要考虑这个功能,当用户忘记密码的情况下,我们需要动态的发给他一个6位的随机密码,通过即时通,短信,微信等.并同时修改数据库中的原密码为这6位的随机密 ...
- md5视频加密 java代码,Java实现MD5加密及解密的代码实例分享
基础:MessageDigest类的使用 其实要在Java中完成MD5加密,MessageDigest类大部分都帮你实现好了,几行代码足矣: /** * 对字符串md5加密 * * @param st ...
- php md5加密 java代码_Java实现MD5加密及解密的代码实例分享
基础:MessageDigest类的使用 其实要在Java中完成MD5加密,MessageDigest类大部分都帮你实现好了,几行代码足矣:/** * 对字符串md5加密 * * @param str ...
- 加密解密系列文章之 - ASCII 加密解密(最简单的加密解密) 上
前言: 首先.在这里声明.本人没学过加密解密专业以及没有对加密解密做过任何的系统学习.文章用来记录我自己学到的加密解密的一些我理解的东西,有错误之处欢迎大家指出.谢谢. 加密解密.在以前我的眼里.是灰 ...
- 加密解密系列文章之 - ASCII 加密解密(最简单的加密解密) 下
继上一篇 加密解密系列文章之 - ASCII 加密解密(最简单的加密解密) 上 的下篇. 我在 上 篇里 已经给大家说了最基本的ASCII 加密 解密的东西.然后再最后 我们说了ASCII加密解密的问 ...
- Java加密解密算法-SHA加密
package algo; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /** ...
- C# 加密解密(DES,3DES,MD5,Base64) 类
public sealed class EncryptUtils{#region Base64加密解密/// <summary>/// Base64加密/// </summary&g ...
最新文章
- 10年内,这19个关键技术将改变世界!
- 使用blowery.Web.HttpCompress.dll对aspx压缩
- 7种从头开始免费学习编程的方法
- Mybatis中的@SelectKey注解
- ubuntu16 安装opencv
- 周志华-机器学习.pdf 学习心得 附整理材料
- C语言程序的语法规范,C语言程序结构和语法规则
- 微信公众号推送模板消息,推送个人消息,给指定的人发送模板消息
- Stata:图示交互效应-调节效应
- Java学习第二十四天
- C primer Plus 9.3.4 递归和倒序计算 DE3
- html静态页面作业——海贼王中乔巴漫画(5页) 学生动漫网页设计模板下载 海贼王大学生HTML网页制作作品 简单漫画网页设计成品
- 【瀑布流插件】vue-masonry
- PV操作与前趋图题型
- 201671010412 郭佳 实验三 作业互评与改进
- 电商项目day11(商品搜索功能实现排序结果分页)
- 目前最流畅的android手机,目前公认最流畅的4大手机系统,第一当之无愧,用三年不卡顿!...
- 百度地图系列02——地图移动到指定点
- TeX/LaTeX 常用宏包简介
- python淘宝秒杀_python实现简单淘宝秒杀功能