MD5加密

在现在的信息交流的时代中,我们的信息安全是很重要的,所以我们需要对网络上的信息的传递来加密。
package com.demo.test1;


import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;




/**
 * 加密类
 *
 */
public class MD5 {
	
    
    //加的盐
    private static final String SALT = "HXWcjvQWVG1wI4FQBLZpQ3pWj48AV63d";
   
    public static String EncoderByMd5(String buf) {
    	try {
			MessageDigest digist = MessageDigest.getInstance("MD5");
			byte[] rs = digist.digest(buf.getBytes());
			StringBuffer digestHexStr = new StringBuffer();
	          for (int i = 0; i < 16; i++) {
	        	  digestHexStr.append(byteHEX(rs[i]));
	          }
	          return digestHexStr.toString();
		} catch (NoSuchAlgorithmException e) {
			System.out.println("出现错误");
		}
    	return null;
    	
    }
    
    public static void main(String args[])
    {
        System.out.println(MD5.encodeByMd5AndSalt("passsdfsword"));
    }
    
    /**
     * 加盐的md5值。这样即使被拖库,仍然可以有效抵御彩虹表攻击
     * @param inbuf 需做md5的字符串
     * @return
     * 
     */
    public static String encodeByMd5AndSalt(String inbuf)
    {
        return EncoderByMd5(EncoderByMd5(inbuf)+SALT);
    }
    public static String byteHEX(byte ib) {
          char[] Digit = { '0','1','2','3','4','5','6','7','8','9',
          'A','B','C','D','E','F' };
          char [] ob = new char[2];
          ob[0] = Digit[(ib >>> 4) & 0X0F];
          ob[1] = Digit[ib & 0X0F];
          String s = new String(ob);
          return s;
    }
    
    
}

  

原文地址:https://www.cnblogs.com/airycode/p/4786287.html