【开发笔记】- MD5加密
主要用于对用户密码的加密,保护用户账户安全:
1 /** 2 * @author shenruihai 3 * 4 */ 5 6 import java.security.MessageDigest; 7 8 import org.apache.commons.logging.Log; 9 10 public class Md5 { 11 Log log; 12 13 public static String getMd5(String s) { 14 char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; 15 16 try { 17 byte[] strTemp = s.getBytes(); 18 MessageDigest mdTemp = MessageDigest.getInstance("md5"); 19 mdTemp.update(strTemp); 20 byte[] md = mdTemp.digest(); 21 int j = md.length; 22 char str[] = new char[j * 2]; 23 int k = 0; 24 for (int i = 0; i < j; i++) { 25 byte byte0 = md[i]; 26 str[k++] = hexDigits[byte0 >>> 4 & 0xf]; 27 str[k++] = hexDigits[byte0 & 0xf]; 28 } 29 return new String(str); 30 } catch (Exception e) { 31 return null; 32 } 33 } 34 35 /** 36 * 标准MD5加密 37 * 38 * @param inStr 39 * @return 40 * @throws Exception 41 */ 42 public static String toMD5(String inStr) { 43 StringBuffer sb = new StringBuffer(); 44 try { 45 MessageDigest md = MessageDigest.getInstance("MD5"); 46 md.update(inStr.getBytes()); 47 byte b[] = md.digest(); 48 int i; 49 for (int offset = 0; offset < b.length; offset++) { 50 i = b[offset]; 51 if (i < 0) 52 i += 256; 53 if (i < 16) 54 sb.append("0"); 55 sb.append(Integer.toHexString(i)); 56 } 57 } catch (Exception e) { 58 return null; 59 // e.printStackTrace(); 60 } 61 return sb.toString().toUpperCase(); 62 } 63 64 public static void main(String[] args) throws Exception { 65 System.out.println(toMD5("MATICSOFT").toUpperCase()); 66 } 67 }