package test;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5Util {
//第一种实现
public final static String MD5(String s) {
char hexDigits[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
try {
byte[] btInput = s.getBytes();
// 获得MD5摘要算法的 MessageDigest 对象
MessageDigest mdInst = MessageDigest.getInstance("MD5");
// 使用指定的字节更新摘要
mdInst.update(btInput);
// 获得密文
byte[] md = mdInst.digest();
// 把密文转换成十六进制的字符串形式
int j = md.length;
char str[] = new char[j * 2];
int k = 0;
for (int i = 0; i < j; i++) {
byte byte0 = md[i];
str[k++] = hexDigits[byte0 >>> 4 & 0xf];
str[k++] = hexDigits[byte0 & 0xf];
}
return new String(str);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
//第二种实现
public final static String MD(String str) {//项目中的
try {
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.update(str.getBytes());
byte b[] = md5.digest(); StringBuffer sb = new StringBuffer("");
for (int n = 0; n < b.length; n++) {
int i = b[n];
if (i < 0) i += 256;
if (i < 16) sb.append("0");
sb.append(Integer.toHexString(i));
}
return sb.toString(); //32位加密
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return null;
}
}
public static void main(String[] args) {
System.out.println(MD5Util.MD5("111"));
System.out.println(MD5Util.MD("111"));
}
}

最新文章

  1. [问题2014A01] 复旦高等代数 I(14级)每周一题(第三教学周)
  2. java日期和字符串的相互转换
  3. LeetCode Generate Parentheses 构造括号串(DFS简单题)
  4. http headers
  5. php之array_column 的使用
  6. 多阶段构建Docker镜像
  7. 1344:【例4-4】最小花费 dijkstra
  8. Bootstrap3基础 栅格系统 标尺(col-lg/md/sm/xs-1)
  9. oracle导出用户下单表或者多表,导入到别的服务器用户下
  10. (1)DBA查询:数据库
  11. [转]java nio解决半包 粘包问题
  12. finfo_file
  13. linux新定时器:timefd及相关操作函数
  14. ArrayBlockingQueue 阻塞队列和 Semaphore 信号灯的应用
  15. Linux学习笔记(第九章)
  16. USB驱动之CDC类的介绍与应用20160905
  17. VK Cup 2016 - Qualification Round 2 A. Home Numbers 水题
  18. 关于softnet的加密硬件狗 也就是所谓的赛孚耐
  19. 网站Http升级至Https(基于Tomcat)
  20. ArgumentException: Getting control x&#39;s position in a group with only x controls when doing KeyDown Aborting解决方法

热门文章

  1. Dynamics AX 2012 R2 堆栈跟踪:不能对客户端调用&#39;unchecked&#39;
  2. SQL SERVER 2008 登陆失败(SQL和windows都没有对应的权限)
  3. Just a Hook(HDU1698 线段树的简单应用)
  4. async和await浅析
  5. web缓存
  6. IE6兼容性问题及IE6常见bug详细汇总
  7. 【OOAD】设计模式概述
  8. SQL*Loader实验笔记【二】
  9. 安装numpy+mkl
  10. Windows 域(domain)