Md5Util

DBC 1.3K 0
import org.apache.shiro.crypto.hash.SimpleHash;
import org.apache.shiro.util.ByteSource;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class Md5Util {
	/**  
     * MD5 加密  
     */   
    public static String getMD5Str(String str) {
        MessageDigest messageDigest = null;
   
        try {   
            messageDigest = MessageDigest.getInstance("MD5");
   
            messageDigest.reset();   
   
            messageDigest.update(str.getBytes("UTF-8"));   
        } catch (NoSuchAlgorithmException e) {
            System.out.println("NoSuchAlgorithmException caught!");
            System.exit(-1);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();   
        }   
   
        byte[] byteArray = messageDigest.digest();   
   
        StringBuffer md5StrBuff = new StringBuffer();
   
        for (int i = 0; i < byteArray.length; i++) {               
            if (Integer.toHexString(0xFF & byteArray[i]).length() == 1)
                md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i]));
            else   
                md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
        }   
   
        return md5StrBuff.toString();   
    }  

	/**  
     * MD5 加密  
     */   
    public static String getMD5Str(Object...objects){
    	StringBuilder stringBuilder=new StringBuilder();
    	for (Object object : objects) {
			stringBuilder.append(object.toString());
		}
    	return getMD5Str(stringBuilder.toString());
    }
    /**
     * MD5 加密+加盐
     */
    public static String getMD5BySalt(String loginName,String passwordUnencrypted ){
        String hashAlgorithmName = "MD5";
        int hashIterations = 1;

        Object credentials = passwordUnencrypted;
        Object salt = ByteSource.Util.bytes(loginName);

        Object passwordEncrypted = new SimpleHash(hashAlgorithmName, credentials, salt, hashIterations);
        return ""+passwordEncrypted;
    }


}

使用方法

小例子

// 密码简化加密
        String passWordmd5Str = Md5Util.getMD5BySalt(userName,passWord);
    //校验密码是否一致
    @Override
    public Boolean checkUserPassword(String userName,String passWord, String userPassword) {

        String passWordmd5Str = Md5Util.getMD5BySalt(userName,passWord);
        if(passWordmd5Str.equals(userPassword)){
            return true;
        }else{
            return false;
        }
    }

发表评论 取消回复
表情 图片 链接 代码

分享