packagecom.ompa.common.utils;importjava.security.MessageDigest;importjava.security.NoSuchAlgorithmException;importjavax.crypto.Mac;importjavax.crypto.SecretKey;importjavax.crypto.spec.SecretKeySpec;/*** 采用MD5加密

*

*@authorzhangcd

* @date 2016-4-29*/

public classEncryptUtil {private static final String MAC_NAME = "HmacSHA1";private static final String ENCODING = "UTF-8";private static final String key = "iloveyou";/***

* MD5加码 生成32位md5码*/

public staticString string2MD5(String inStr){

MessageDigest md5= null;try{

md5= MessageDigest.getInstance("MD5");

}catch(Exception e){

System.out.println(e.toString());

e.printStackTrace();return "";

}char[] charArray =inStr.toCharArray();byte[] byteArray = new byte[charArray.length];for (int i = 0; i < charArray.length; i++)

byteArray[i]= (byte) charArray[i];byte[] md5Bytes =md5.digest(byteArray);

StringBuffer hexValue= newStringBuffer();for (int i = 0; i < md5Bytes.length; i++){int val = ((int) md5Bytes[i]) & 0xff;if (val < 16)

hexValue.append("0");

hexValue.append(Integer.toHexString(val));

}returnhexValue.toString();

}/***

* MD5加密 生成32位md5码*/

public staticString stringMD5(String inStr){returnstring2MD5(string2MD5(inStr));

}/*** 加密解密算法*/

public staticString convertMD5(String inStr){char[] a =inStr.toCharArray();for (int i = 0; i < a.length; i++){

a[i]= (char) (a[i] ^ 't');

}

String s= newString(a);returns;

}/*** HMAC-SHA1

*@paramencryptText

*@paramencryptKey

*@return*@throwsException*/

public static String HmacSHA1Encrypt(String encryptText, String encryptKey) throwsException

{byte[] data=encryptKey.getBytes(ENCODING);

SecretKey secretKey= newSecretKeySpec(data, MAC_NAME);

Mac mac=Mac.getInstance(MAC_NAME);

mac.init(secretKey);byte[] text =encryptText.getBytes(ENCODING);byte[] str =mac.doFinal(text);//Create Hex String

StringBuffer hexString = newStringBuffer();//字节数组转换为 十六进制 数

for (int i = 0; i < str.length; i++) {

String shaHex= Integer.toHexString(str[i] & 0xFF);if (shaHex.length() < 2) {

hexString.append(0);

}

hexString.append(shaHex);

}returnhexString.toString();

}public staticString convertSHA1(String instr){try{returnHmacSHA1Encrypt(instr,key);

}catch(Exception e) {//TODO Auto-generated catch block

e.printStackTrace();return "";

}

}//测试主函数

public static void main(String args[]) throwsException {//哈希散列带秘钥加密

String tt = convertSHA1("123456");

System.out.println(tt);//MD5加密

String s = new String("123456");

System.out.println("原始:" +s);

System.out.println("MD5后:" +string2MD5(s));

System.out.println("MD5加密后:" +stringMD5(s));

}

}

java md5 密钥_java加密算法--MD5加密和哈希散列带秘钥加密算法源码相关推荐

  1. shiro使用md5salt哈希散列加密

    我们先得到MD5加密后的字串 @Testpublic void test01(){//md5Md5Hash md5Hash = new Md5Hash("123456");Syst ...

  2. 在线字符串哈希/散列加密工具

    在线字符串哈希/散列工具 在线字符串哈希/散列工 本工具可以获取多种散列方式的哈希值,如MD5,SHA1,SHA224,SHA256,SHA384,SHA512,HmacMD5,HmacSHA1等,基 ...

  3. java计算机毕业设计桂林恒保健康防护有限公司官网MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计桂林恒保健康防护有限公司官网MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计桂林恒保健康防护有限公司官网MyBatis+系统+LW文档+源码+调试部署 本源 ...

  4. java毕业设计——基于Java+Java ME的无线网络移动端的俄罗斯方块游戏设计与实现(毕业论文+程序源码)——俄罗斯方块游戏

    基于Java+Java ME的无线网络移动端的俄罗斯方块游戏设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于Java+Java ME的无线网络移动端的俄罗斯方块游戏设计与实现,文章末尾附有 ...

  5. java河南口腔医疗机构线上服务系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署

    java河南口腔医疗机构线上服务系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署 java河南口腔医疗机构线上服务系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署 本源 ...

  6. java毕业设计——基于java+Jsoup+HttpClient的网络爬虫技术的网络新闻分析系统设计与实现(毕业论文+程序源码)——网络新闻分析系统

    基于java+Jsoup+HttpClient的网络爬虫技术的网络新闻分析系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+Jsoup+HttpClient的网络爬虫技术的网络 ...

  7. java计算机毕业设计H5女娲宫旅游网站设计与实现MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计H5女娲宫旅游网站设计与实现MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计H5女娲宫旅游网站设计与实现MyBatis+系统+LW文档+源码+调试部署 本源 ...

  8. java计算机毕业设计黑格伯爵国际英语贵族学校官网MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计黑格伯爵国际英语贵族学校官网MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计黑格伯爵国际英语贵族学校官网MyBatis+系统+LW文档+源码+调试部署 本源 ...

  9. Java外卖点餐送餐平台源码带手机端带文档(源码分享)

    Java仿饿了么外卖点餐送餐平台源码带手机端带文档(源码分享) 一个简单的外卖系统,包括手机端,后台管理,api基于spring boot和vue的前后端分离的外卖系统.包含手机端,后台管理功能. 核 ...

最新文章

  1. asp.net mvc 从数据库中读取图片的实现代码
  2. 程序员数学基础【一、基础运算符号(整数、普通浮点数运算、逻辑运算)】(Python版本)
  3. UOJ #584. 天天去哪吃
  4. python supervisor 日志_Supervisor使用详解
  5. 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·008【常用函数】
  6. Bitwise Operators
  7. python 获取本机IP地址
  8. mysql导出xls_MySQL导出 xls上传到异机
  9. 为什么我们说“买东西”,而不说“买南北”?
  10. 保姆级教程:顶会论文写作指南
  11. 并行计算与计算机集群
  12. iOS监控-野指针定位
  13. 【机械】基于广义Hoek-Brown实现应变软化岩体GRC曲线及围岩位移应力塑性区绘制附matlab代码
  14. 计算机启动时检测硬盘,取消win7电脑开机检测硬盘的方法
  15. 【工作感悟】马上大学毕业了,为什么我找不到工作?
  16. TI/德州仪器 TPS57040QDGQRQ1 封装MSOP-10 批次20+ 未税单价110
  17. 武汉新华电脑学校计算机协会,重庆新华电脑学校计算机管理协会更名庆典
  18. Verizon宣布斥资44亿美元收购AOL,推动LTE无线视频和OTT 策略
  19. 考研数学三真题1987-2022年所有历年真题及解析(高清无水印)
  20. 三流的团队是下跳棋,二流的团队是打扑克,一流的团队是搓麻将

热门文章

  1. b插到元素a之前python_python之路_前端基础之jQuery入门3
  2. android string 转成json对象_Android开发:生成桌面快捷方式是这样做的
  3. 4.1.6 OS之文件的基本操作原理(创建、删除、打开、关闭、读-写)
  4. php 函数有命名空间吗_一篇弄懂PHP命名空间及use的使用
  5. Qt小游戏《2048》源码(含大量注释)
  6. python 从excel中抓取数据_使用Python抓取美团数据存于Excel中
  7. zemax操作数_ZEMAX与像差理论:二级光谱的ZEMAX描述与详解
  8. mysql启动选项只读_MySQL的启动选项和系统变量该如何配置?
  9. TVS二极管挑选法宝,聪明的你看看也知道
  10. linux环境下的连接器,Linux下连接器ld链接如何排序