對使用者的密碼進行md5技術的加密
阿新 • • 發佈:2018-12-04
一般來說,做專案時,在使用者模組裡,對使用者的密碼都是要進行加密的,這樣在資料庫表中看到的也不是明文密碼。而是經過加密後的密碼。在這裡,我就介紹一種md5的加密方式。雖然現在這種加密方式也並不安全了(因為可以使用”md5線上解密”來得到密碼)。但是,也可以寫著練習一下。現在的加密技術推薦可以使用sha128、sha256、sha256+salt等等技術。
首先,你在你的專案中建立一個utils包,在裡面建立一個Md5Util工具類,如下:
package com.oracle.cloudnote.utils; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Arrays; public class Md5Util { public static String md5(String data) { try { byte[] md5 = md5(data.getBytes("utf-8")); return toHexString(md5); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return ""; } public static byte[] md5(byte[] data) { try { MessageDigest md = MessageDigest.getInstance("md5"); md.update(data); return md.digest(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return new byte[]{}; } private static String toHexString(byte[] md5) { StringBuilder sb = new StringBuilder(); for(byte b : md5) { sb.append(leftPad(Integer.toHexString(b & 0xff), '0', 2)); } return sb.toString(); } private static String leftPad(String hex, char c, int size) { char[] cs = new char[size]; Arrays.fill(cs, c); System.arraycopy(hex.toCharArray(), 0, cs, cs.length - hex.length(), hex.length()); return new String(cs); } }
如何使用?
直接呼叫該工具類的md5方法就可以對密碼加密了,如下圖: