Md5加密
来源:互联网 发布:巨人网络股票代码 编辑:程序博客网 时间:2024/06/03 13:36
package md5;
/*
* MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由
* MIT Laboratory for Computer Science和RSA Data Security Inc的
* Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。
*
* 通过MD5加密后的密文结果是16个字节数据,并且还是各种特殊字符,
* 通过String s = Integer.toHexString(i & 0xff); 转化为我们所熟知的16进制数,
* 然后通过变种变成32字节数据
*/
import java.security.MessageDigest;
import org.junit.Test;
public class MD5 {
@Test
public void demo1() throws Exception {
MessageDigest md = MessageDigest.getInstance("MD5");
String pwd = "1234";
String pwd2 = "";
byte b[] = md.digest(pwd.getBytes());
// System.out.println("b= "+b.length);//b= 16
// md5算法中,无论明文数据有多长,密文都是16个字节数据
for (byte i : b) {
// System.out.print(i+" ");//-127 -36 -101 -37 82 -48 77 -62 0 54
// -37 -40 49 62 -48 85
// 此处其实md5加密已经完成,可惜它生成的密文全是字节数据,不是我们通常所习惯的(看得懂的16进制的数)
String s = Integer.toHexString(i & 0xff);// 转化为我们所熟知的16进制数
// System.out.print(s + " ");// 81 dc 9b db 52 d0 4d c2 0 36 db d8
// 31
// 3e d0 55
// 如果i<16时,s只有一位,只有i>=16的i转换成s时才是两位
if (s.length() == 1) {
s = s + "0";// 变种: s=s+"F" 或 s ="1"+s 等等..
}
pwd2 = s + pwd2;
}
System.out.println(pwd2.length());// 32
System.out.print(pwd2);// 55d03e31d8db3600c24dd052db9bdc81
}
}
/*
* MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由
* MIT Laboratory for Computer Science和RSA Data Security Inc的
* Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。
*
* 通过MD5加密后的密文结果是16个字节数据,并且还是各种特殊字符,
* 通过String s = Integer.toHexString(i & 0xff); 转化为我们所熟知的16进制数,
* 然后通过变种变成32字节数据
*/
import java.security.MessageDigest;
import org.junit.Test;
public class MD5 {
@Test
public void demo1() throws Exception {
MessageDigest md = MessageDigest.getInstance("MD5");
String pwd = "1234";
String pwd2 = "";
byte b[] = md.digest(pwd.getBytes());
// System.out.println("b= "+b.length);//b= 16
// md5算法中,无论明文数据有多长,密文都是16个字节数据
for (byte i : b) {
// System.out.print(i+" ");//-127 -36 -101 -37 82 -48 77 -62 0 54
// -37 -40 49 62 -48 85
// 此处其实md5加密已经完成,可惜它生成的密文全是字节数据,不是我们通常所习惯的(看得懂的16进制的数)
String s = Integer.toHexString(i & 0xff);// 转化为我们所熟知的16进制数
// System.out.print(s + " ");// 81 dc 9b db 52 d0 4d c2 0 36 db d8
// 31
// 3e d0 55
// 如果i<16时,s只有一位,只有i>=16的i转换成s时才是两位
if (s.length() == 1) {
s = s + "0";// 变种: s=s+"F" 或 s ="1"+s 等等..
}
pwd2 = s + pwd2;
}
System.out.println(pwd2.length());// 32
System.out.print(pwd2);// 55d03e31d8db3600c24dd052db9bdc81
}
}
阅读全文
0 0
- MD5加密
- MD5加密
- md5加密
- MD5加密
- md5加密
- MD5加密
- MD5加密
- md5 加密
- MD5加密
- md5加密
- MD5加密
- MD5加密
- MD5加密
- MD5加密
- MD5加密
- MD5加密
- MD5加密
- MD5加密
- 统计曲线怎么找波峰
- 移动端资源
- 文件字节流与字符流
- android studio + NDK + JNI
- android停止一秒钟
- Md5加密
- 社会实践调研报告-关于大学生网络生活的调研报告
- Spinner三级联动,解析JSON省 市 区,超简单一步搞定
- 三个数比较大小
- 文件上传与下载Demo
- fatal error C1189: #error : missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT_MACROS
- javaee 是什么,如何获取各种规范jar包,各种规范的实现的jar包
- Java编程热门问题总结——基础语法篇
- crontab表达式执行时间计算,crontab在线测试