md5
MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。
在JDK内部集成多种算法,包括MD5和AES等,那MD5在Java上的使用就非常简单了,默认的加密是小写的
看一个简单的加密解密
public class Md5_test { public static void main(String[] args) { String passwordString = "123456"; String digeString = DigestUtils.md5Hex(passwordString); System.out.print("Md5Test.main()digest="+digeString); } }
存入数据库即可
//密码的隐藏 password= DigestUtils.md5Hex(password);
不过需要导入org.apache.commons.codec.digest.DigestUtils这个包
点击看里面的源码就能看到各种方法。工具类为我们提供了很多封装方法
当然还有很多这样的工具类如
来自java.security.MessageDigest的MessageDigest
点金源码看到方法
再看一个md5的实例
public class MD5 { /** * 对传入的String进行MD5加密 * * @param s * @return */ public static final String getMd5(String s) { // 16进制数组 char hexDigits[] = { '5', '0', '5', '6', '2', '9', '6', '2', '5', 'q', 'b', 'l', 'e', 's', 's', 'y' }; try { char str[]; // 将传入的字符串转换成byte数组 byte strTemp[] = s.getBytes(); // 获取MD5加密对象 MessageDigest mdTemp = MessageDigest.getInstance("MD5"); // 传入需要加密的目标数组 mdTemp.update(strTemp); // 获取加密后的数组 byte md[] = mdTemp.digest(); int j = md.length; str = new char[j * 2]; int k = 0; // 将数组做位移 for (int i = 0; i < j; i++) { byte byte0 = md[i]; str[k++] = hexDigits[byte0 >>> 4 & 0xf]; str[k++] = hexDigits[byte0 & 0xf]; } // 转换成String并返回 return new String(str); } catch (Exception e) { return null; } } public static void main(String[] args) { System.out.println(MD5.getMd5("123456"));//s05bse6q2qlb9qblls96s592y55y556s }