加密算法

来源:互联网 发布:甘肃网络电视台 编辑:程序博客网 时间:2024/05/16 11:41

import java.security.MessageDigest;
import org.apache.log4j.Logger;

public class EncoderByMd5 {
    
    /**日志记录对象*/
    private static final Logger logger = Logger.getLogger( EncoderByMd5.class );
    
    /**
     *
     * md5的加密算法
     *
     * @param str 要加密的字符串
     * @return 返回已经加密过的字符串
     *
     * @return String 返回已经加密过的字符串
     */
    public String encoderByMd5(String str){
        MessageDigest messageDigest = null;  
        try {  
            messageDigest = MessageDigest.getInstance("MD5");  
            messageDigest.reset();  
            messageDigest.update(str.getBytes("UTF-8"));  
        } catch (Exception e) {  
            logger.error( "md5 error!", e );
        }
        
        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();  
    }
    
    public static void main(String[] args) {
        EncoderByMd5 encoderByMd5 = new EncoderByMd5();
        String st = encoderByMd5.encoderByMd5("aaaaaa");
        System.out.println( st );
    }
}



简单的实现方法:

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

public class Md5Tset { 

/** 
将字符串通过MD5加密 
* @param str 
* @return 
*/ 
public static String encodeStr(String str){ 

byte[] strByte = str.getBytes(); 

MessageDigest md = null; 

try { 
md = MessageDigest.getInstance("MD5"); 
} catch (NoSuchAlgorithmException e) { 
e.printStackTrace(); 


md.update(strByte); 

byte[] newByte = md.digest(); 

StringBuilder sb = new StringBuilder(); 

//转换为16进制 
for (int i = 0; i < newByte.length; i++) { 

if ((newByte[i] & 0xff) < 0x10) { 
   sb.append("0"); 

sb.append(Long.toString(newByte[i] & 0xff, 16)); 


return sb.toString(); 



/** 
测试 
* @param args 
*/ 
public static void main(String[] args) { 

System.out.println("abc after by MD5 encryption: "+Md5Tset.encodeStr("abc")); 



}


0 0
原创粉丝点击