JAVA代码实现MD5加密算法
2016-03-08 09:59
393 查看
为了实现数据的安全性,尤其是保证用户的密码不被丢失,我们常常要对用户数据进行加密,MD5是不错的选择,
MD5单向加密,不可逆转。
package com.example.mobilesafe.utils;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class Main {
public static void main(String[] args) {
String password = "123456";
try {
// 1,获取MD5摘要算法的MessageDigest对象
MessageDigest instance = MessageDigest.getInstance("MD5");
// 2,对字符串加密,返回字节数组
byte[] digest = instance.digest(password.getBytes());
StringBuffer sb = new StringBuffer();
for (byte b : digest) {
// 3,获取字节的低八位有效值
int i = b & 0xff;
// 4,将整数转为16进制
String hexString = Integer.toHexString(i);
// 5,如果是1位的话,补0
if (hexString.length() < 2) {
hexString = "0" + hexString;
}
// 6,把密文添加到缓存中
sb.append(hexString);
}
System.out.println("md5:" + sb.toString());
System.out.println("md5 length:" + sb.toString().length()); //Md5都是32位
} catch (NoSuchAlgorithmException e) {
// 没有该算法时,抛出异常
e.printStackTrace();
}
}
}
MD5单向加密,不可逆转。
package com.example.mobilesafe.utils;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class Main {
public static void main(String[] args) {
String password = "123456";
try {
// 1,获取MD5摘要算法的MessageDigest对象
MessageDigest instance = MessageDigest.getInstance("MD5");
// 2,对字符串加密,返回字节数组
byte[] digest = instance.digest(password.getBytes());
StringBuffer sb = new StringBuffer();
for (byte b : digest) {
// 3,获取字节的低八位有效值
int i = b & 0xff;
// 4,将整数转为16进制
String hexString = Integer.toHexString(i);
// 5,如果是1位的话,补0
if (hexString.length() < 2) {
hexString = "0" + hexString;
}
// 6,把密文添加到缓存中
sb.append(hexString);
}
System.out.println("md5:" + sb.toString());
System.out.println("md5 length:" + sb.toString().length()); //Md5都是32位
} catch (NoSuchAlgorithmException e) {
// 没有该算法时,抛出异常
e.printStackTrace();
}
}
}
相关文章推荐
- Eclipse下配置Ant脚本并自动打包带签名的Android apk
- 【leetcode】【145】Binary Tree Postorder Traversal
- ClassNotFoundException和NoClassDefFoundError的区别
- Java中getResourceAsStream的用法
- struts2 大白话原理简介
- java中的各种数据类型在内存中存储的方式
- 使用IntelliJ IDEA 15和Maven创建Java Web项目
- split分割字符串(按两种符号分割)
- struts2 搜索顺序
- java基础——集合的常见方法及遍历方式
- spring 四种数据源配置方式
- HDU 1850 Being a Good Boy in Spring Festival (尼姆博弈)
- Java实现ftp上传文件
- SpringMVC整合Shiro
- JSP基础:JavaBean基础应用
- java的 List 排序
- struts2 入门案例
- JAVA实现SFTP实例
- 【leetcode】【144】Binary Tree Preorder Traversal
- Spring定时任务