【代码积累-4】cal MD5

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
//import org.apache.commons.codec.binary.Hex;

public class CalMD5_Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String rawString = new String((System.currentTimeMillis()*1000)+":"+generateSipRand());
        System.out.println(calMD5(rawString).toLowerCase());
        System.out.println(calMD5_2(rawString).toLowerCase());
	}

	public static String calMD5(String input)
    {
        byte[] inputByteArray = input.getBytes();
        byte[] outputByteArray = null;
        
        try
        {
            /*��ȡһ��MD5ת��������*/
            MessageDigest messageDigest = MessageDigest.getInstance("MD5");
            inputByteArray = input.getBytes();
            
            messageDigest.update(inputByteArray);
            outputByteArray = messageDigest.digest();
            
            /*���ֽ�����ת�����ַ������*/
            return byteArrayToHexString(outputByteArray);
        }
        catch (NoSuchAlgorithmException e) 
        {  
            return null; 
        } 
    }
	
	public static String calMD5_2(String input)
    {
        byte[] inputByteArray = input.getBytes();
        byte[] outputByteArray = null;
        
        try
        {
            /*��ȡһ��MD5ת��������*/
            MessageDigest messageDigest = MessageDigest.getInstance("MD5");
            inputByteArray = input.getBytes();
            
            messageDigest.update(inputByteArray);
            outputByteArray = messageDigest.digest();
            
            String temp = new String(outputByteArray);
            
            /*���ֽ�����ת�����ַ������*/
            return temp;
        }
        catch (NoSuchAlgorithmException e) 
        {  
            return null; 
        } 
    }
	
	public static String byteArrayToHexString(byte[] byteArray) 
    {  
        // ���ȳ�ʼ��һ���ַ����飬�������ÿ��16�����ַ�  
        char[] hexDigits = {'0','1','2','3','4','5','6','7','8','9', 'A','B','C','D','E','F' };  
  
  
  
        // newһ���ַ����飬�������������ɽ���ַ����ģ�����һ�£�һ��byte�ǰ�λ�����ƣ�Ҳ����2λʮ�������ַ���2��8�η�����16��2�η�����  
        char[] resultCharArray =new char[byteArray.length * 2];  

       // �����ֽ����飬ͨ��λ���㣨λ����Ч�ʸߣ���ת�����ַ��ŵ��ַ�������ȥ  
  
        int index = 0;  
  
        for (byte b : byteArray) 
        {  
            resultCharArray[index++] = hexDigits[b>>> 4 & 0xf];  
            resultCharArray[index++] = hexDigits[b& 0xf];  
        }  
        
        // �ַ�������ϳ��ַ������� 
        return new String(resultCharArray);
    }
	
	private static int generateSipRand()
    {
        int random = (int)(Math.random()*Integer.MAX_VALUE);        
        return random;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值