package demo;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException; public class MD5Util { /**
* Java 自带MD5加密
* @param args
* @throws NoSuchAlgorithmException
*/
public static void main(String[] args) throws NoSuchAlgorithmException {
Long l = 0L;
int index;
index = (int) (l >>> 3) & 0x3F;
System.out.println("index:" + index);
System.out.println("0x3F:" + 0x3F); System.out.print("32位MD5大写:"+MD5("adminAdmin")); } public final static String MD5(String pwd) {
// 用于加密的字符
char md5String[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
try {
// 使用平台的默认字符集将此 String 编码为 byte序列,并将结果存储到一个新的 byte数组中
byte[] btInput = pwd.getBytes();
// 获得指定摘要算法的 MessageDigest对象,此处为MD5
// MessageDigest类为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法。
// 信息摘要是安全的单向哈希函数,它接收任意大小的数据,并输出固定长度的哈希值。
MessageDigest mdInst = MessageDigest.getInstance("MD5");
// System.out.println(mdInst);
// MD5 Message Digest from SUN, <initialized>
// MessageDigest对象通过使用 update方法处理数据, 使用指定的byte数组更新摘要
mdInst.update(btInput);
// System.out.println(mdInst);
// MD5 Message Digest from SUN, <in progress>
// 摘要更新之后,通过调用digest()执行哈希计算,获得密文
byte[] md = mdInst.digest();
// System.out.println(md);
// 把密文转换成十六进制的字符串形式
int j = md.length;
// System.out.println(j);
char str[] = new char[j * 2];
int k = 0;
for (int i = 0; i < j; i++) { // i = 0
byte byte0 = md[i]; // 95
str[k++] = md5String[byte0 >>> 4 & 0xf]; // 5
str[k++] = md5String[byte0 & 0xf]; // F
}
// 返回经过加密后的字符串
return new String(str);
} catch (Exception e) {
e.printStackTrace();
return null;
}
} }

最新文章

  1. URL跳转的几种方式
  2. [转] 从 C 到 Objective C 入门1
  3. Yii的学习(2)--数据访问对象 (DAO)
  4. 任意List 和DatabTable的转换
  5. 高可用与负载均衡(8)之聊聊 LVS重要参数和优化以及监控
  6. Spring+Mybatis+jQuery.Pagination.js异步分页及JsonConfig的使用
  7. bistu新生-1005
  8. MVC&amp;amp;&amp;amp;MVP
  9. SQLserver中常用的函数及实例
  10. Java 里把 InputStream 转换成 String 的几种方法
  11. Web Service学习笔记:动态调用WebService
  12. 在项目管理工具Redmine中使用SubVersion进行版本管理
  13. android+eclipse+mysql+servlet(Android与mysql建立链接)
  14. Vue单页面骨架屏实践
  15. 由HashMap哈希算法引出的求余%和与运算&amp;转换问题
  16. .Net Core的Log方式:Serilog+Kibana
  17. eclipse 工作区空格和回车键显示为乱码
  18. TX-LCN分布式事务Demo实战
  19. MySQL Backup mysqldump备份流程学习
  20. Python-CSS高级 题目

热门文章

  1. 2016030101 - ubuntu15.1上安装git客户端
  2. dp 0-1背包问题
  3. 01 Hello, Python!
  4. LightOj_1342 Aladdin and the Magical Sticks
  5. 定制ckeditor的菜单
  6. Junit4学习笔记
  7. 在Win32程序中显示Dos调试窗口,可暂停(AllocConsole,WriteConsole,FreeConsole函数,GetStdHandle函数取得输入句柄)
  8. ‘char *&#39; differs in levels of indirection from &#39;int&#39;
  9. css的定位机制
  10. 在html页面中利用ftp访问协议格式载入服务器图片