MD5 的加密


本人博客地址:http://my.oschina.net/lijindou/blog

轉載請標明原址:http://my.oschina.net/lijindou/blog/717003

/**
 * Created by admin on 2016/7/21.
 */

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

/**
 * 對外提供getMD5(String)方法
 *
 * @author randyjia
 */
public class MD5 {

    public static String getMD5(String val) throws NoSuchAlgorithmException {
        MessageDigest md5 = MessageDigest.getInstance("MD5");
        md5.update(val.getBytes());
        byte[] m = md5.digest();//加密
        return getString(m);
    }

    private static String getString(byte[] b) {
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < b.length; i++) {
            sb.append(b[i]);
        }
        return sb.toString();
    }
}

使用的時候直接  MD5.getMD5(String);

補充 2016/08/23

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

public class MD5Utils {
    /*
     * MD5加密算法
     * 生成的是32位的算法
     */
    public static String encode(String text){

        try {
            MessageDigest digest = MessageDigest.getInstance("md5");
            byte[] result = digest.digest(text.getBytes());
            StringBuilder sb =new StringBuilder();
            for(byte b:result){
                int number = b&0xff;
                String hex = Integer.toHexString(number);
                if(hex.length() == 1){
                    sb.append("0"+hex);
                }else{
                    sb.append(hex);
                }
            }
            return sb.toString();
        } catch (NoSuchAlgorithmException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return "" ;
    }

上面的方法生成的是32位小寫的,如果需要生成大寫的就在sb.toString()後加.toUpperCase()便可。

32位小寫

return sb.toString();

32位大寫

return sb.toString().toUpperCase();

16位小寫

return sb.toString().substring(8,24);

16位大寫

return sb.toString().substring(8,24).toUpperCase();


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章