java md5 密钥_java加密算法--MD5加密和哈希散列带秘钥加密算法源码
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加密和哈希散列带秘钥加密算法源码相关推荐
- shiro使用md5salt哈希散列加密
我们先得到MD5加密后的字串 @Testpublic void test01(){//md5Md5Hash md5Hash = new Md5Hash("123456");Syst ...
- 在线字符串哈希/散列加密工具
在线字符串哈希/散列工具 在线字符串哈希/散列工 本工具可以获取多种散列方式的哈希值,如MD5,SHA1,SHA224,SHA256,SHA384,SHA512,HmacMD5,HmacSHA1等,基 ...
- java计算机毕业设计桂林恒保健康防护有限公司官网MyBatis+系统+LW文档+源码+调试部署
java计算机毕业设计桂林恒保健康防护有限公司官网MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计桂林恒保健康防护有限公司官网MyBatis+系统+LW文档+源码+调试部署 本源 ...
- java毕业设计——基于Java+Java ME的无线网络移动端的俄罗斯方块游戏设计与实现(毕业论文+程序源码)——俄罗斯方块游戏
基于Java+Java ME的无线网络移动端的俄罗斯方块游戏设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于Java+Java ME的无线网络移动端的俄罗斯方块游戏设计与实现,文章末尾附有 ...
- java河南口腔医疗机构线上服务系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
java河南口腔医疗机构线上服务系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署 java河南口腔医疗机构线上服务系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署 本源 ...
- java毕业设计——基于java+Jsoup+HttpClient的网络爬虫技术的网络新闻分析系统设计与实现(毕业论文+程序源码)——网络新闻分析系统
基于java+Jsoup+HttpClient的网络爬虫技术的网络新闻分析系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+Jsoup+HttpClient的网络爬虫技术的网络 ...
- java计算机毕业设计H5女娲宫旅游网站设计与实现MyBatis+系统+LW文档+源码+调试部署
java计算机毕业设计H5女娲宫旅游网站设计与实现MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计H5女娲宫旅游网站设计与实现MyBatis+系统+LW文档+源码+调试部署 本源 ...
- java计算机毕业设计黑格伯爵国际英语贵族学校官网MyBatis+系统+LW文档+源码+调试部署
java计算机毕业设计黑格伯爵国际英语贵族学校官网MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计黑格伯爵国际英语贵族学校官网MyBatis+系统+LW文档+源码+调试部署 本源 ...
- Java外卖点餐送餐平台源码带手机端带文档(源码分享)
Java仿饿了么外卖点餐送餐平台源码带手机端带文档(源码分享) 一个简单的外卖系统,包括手机端,后台管理,api基于spring boot和vue的前后端分离的外卖系统.包含手机端,后台管理功能. 核 ...
最新文章
- asp.net mvc 从数据库中读取图片的实现代码
- 程序员数学基础【一、基础运算符号(整数、普通浮点数运算、逻辑运算)】(Python版本)
- UOJ #584. 天天去哪吃
- python supervisor 日志_Supervisor使用详解
- 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·008【常用函数】
- Bitwise Operators
- python 获取本机IP地址
- mysql导出xls_MySQL导出 xls上传到异机
- 为什么我们说“买东西”,而不说“买南北”?
- 保姆级教程:顶会论文写作指南
- 并行计算与计算机集群
- iOS监控-野指针定位
- 【机械】基于广义Hoek-Brown实现应变软化岩体GRC曲线及围岩位移应力塑性区绘制附matlab代码
- 计算机启动时检测硬盘,取消win7电脑开机检测硬盘的方法
- 【工作感悟】马上大学毕业了,为什么我找不到工作?
- TI/德州仪器 TPS57040QDGQRQ1 封装MSOP-10 批次20+ 未税单价110
- 武汉新华电脑学校计算机协会,重庆新华电脑学校计算机管理协会更名庆典
- Verizon宣布斥资44亿美元收购AOL,推动LTE无线视频和OTT 策略
- 考研数学三真题1987-2022年所有历年真题及解析(高清无水印)
- 三流的团队是下跳棋,二流的团队是打扑克,一流的团队是搓麻将
热门文章
- b插到元素a之前python_python之路_前端基础之jQuery入门3
- android string 转成json对象_Android开发:生成桌面快捷方式是这样做的
- 4.1.6 OS之文件的基本操作原理(创建、删除、打开、关闭、读-写)
- php 函数有命名空间吗_一篇弄懂PHP命名空间及use的使用
- Qt小游戏《2048》源码(含大量注释)
- python 从excel中抓取数据_使用Python抓取美团数据存于Excel中
- zemax操作数_ZEMAX与像差理论:二级光谱的ZEMAX描述与详解
- mysql启动选项只读_MySQL的启动选项和系统变量该如何配置?
- TVS二极管挑选法宝,聪明的你看看也知道
- linux环境下的连接器,Linux下连接器ld链接如何排序