MD5学习笔记
来源:互联网 发布:完美软件启动器 编辑:程序博客网 时间:2024/05/14 15:54
最近看张孝祥的视频。对以前的知识有了一些新的收获,现在记录下来
代码来自 https://code.google.com/p/howbuy/source/browse/trunk/project_palmtopfund/PalmtopFund/src/howbuy/android/util/MD5Utils.java?spec=svn233&r=233
package howbuy.android.util;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;public class MD5Utils { public static void main(String[] args) throws Exception{ } public static String toMD5(String origin) throws RuntimeException{ MessageDigest digest = null; try { digest = MessageDigest.getInstance("MD5"); } catch (NoSuchAlgorithmException e) { throw new RuntimeException("md5"); } byte[] results = digest.digest(origin.getBytes());//字节 二进制存储 String md5String = toHex(results); return md5String; } /** 二进制用十六进制表示 */ private static String toHex(byte[] results) { if(results == null) return null; StringBuilder hexString = new StringBuilder(); //字节数组16进制表示 // 1 byte=8 bit -->4bit,4bit -->hex1,hex2 即一个byte用2个16进制位表示 //hex数组: 0 .... F -----> 0001 一个16进制位可以表示4个bit位 // buf[0] buf[1] buf[2] //[0100,1101][1111,0001][1010,1111] 3个字节 for(int i=0;i<results.length;i++){ int hi = (results[i]>>4) & 0x0f;//4bit 高4位 int lo = results[i] & 0x0f;//4bit 低4位 hexString.append(Character.forDigit(hi, 16)).append(Character.forDigit(lo, 16)); //即2个16进制字符表示一个字节 } return hexString.toString(); }}
上面的例子中md5加密后的长短是16个字节
0 0
- MD5算法学习笔记
- 接触md5,学习笔记
- MD5学习笔记
- 学习笔记---md5网站
- MD5之学习笔记
- 【个人笔记】md5学习
- MD5 java 学习笔记01
- 《java学习笔记》MD5加密算法
- 【黑马程序员】MD5加密算法(学习笔记)
- 学习笔记-C语言实现MD5加密算法
- MD5加密的使用 学习笔记
- C#学习笔记之MD5加密
- 前端学习笔记1--md5加密中文
- (学习笔记)Java Message Digest Algorithm MD5
- 关于MD5加密的学习笔记
- nodejs session MD5加密学习笔记
- MD5笔记
- 笔记:MD5
- mysql-5.6.16-win32免安装版安装过程
- C++编程:用递归的方法输出vector对象的内容
- 汉和称中国第一批2艘国产航母或采用不同动力
- 定义c/c++全局变量/常量几种方法的区别
- C++面向对象学习笔记
- MD5学习笔记
- 设计模式之单例模式
- 使用spring3.0的cache方案解决缓存问题
- 爱踢门之锤子自由截屏快捷键配置(下)
- 技术面
- 认识基础任务标签(上)—ant入门指南(3)
- 美好的一天进入分类原创进入内心
- VGA Signal Timing
- LeetCode——Reverse Words in a String