为了实现数据的安全性,尤其是保证用户的密码不被丢失,我们常常要对用户数据进行加密,MD5是不错的选择,
MD5单向加密,不可逆转。
<pre name="code" class="java"><span style="font-size:18px;">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();
}
}
}</span>