当前位置:编程学习 > JAVA >>

Java MD5加密算法学习

   MD5,即"Message-Digest Algorithm 5(信息-摘要算法)",它由MD2、MD3、MD4发展而来的一种单向函数算法(也就是HASH算法),它是国际著名的公钥加密算法标准RSA的第一设计者R.Rivest于上个世纪90年代初开发出来的。MD5的最大作用在于,将不同格式的大容量文件信息在用数字签名软件来签署私人密钥前"压缩"成一种保密的格式,关键之处在于这种"压缩"是不可逆的。


     JavaDemo:Md5Demo.java

 

package com.zsl.algorithm;  
  
import java.security.MessageDigest;  
import java.security.NoSuchAlgorithmException;  
  
public class Md5Demo {  
    /** 
     *  
     * @param s:要进行加密的字符串 
     * @return  字符串的md5值 
     */  
    public static String getMd5(String s) {  
        char hexChar[] = {'0', '1', '2', '3', '4', '5', '6',   
                '7', '8' , '9', 'a', 'b', 'c', 'd', 'e', 'f'};  
        //md5加密算法的加密对象为字符数组,这里是为了得到加密的对象   
        byte[] b = s.getBytes();  
        try {  
            MessageDigest md = MessageDigest.getInstance("MD5");  
            md.update(b);  
            byte[] b2 = md.digest();// 进行加密并返回字符数组   
            char str[] = new char[b2.length << 1];  
            int len = 0;  
            //将字符数组转换成十六进制串,形成最终的密文   
            for (int i = 0; i < b2.length; i++) {  
                byte val = b2[i];  
                str[len++] = hexChar[(val >>> 4) & 0xf];  
                str[len++] = hexChar[val & 0xf];  
            }  
            return new String(str);  
        } catch (NoSuchAlgorithmException e) {  
            // TODO Auto-generated catch block   
            e.printStackTrace();  
        }  
        return null;  
    }  
  
    public static void main(String[] args) {  
        String res = getMd5("20130702");  
        System.out.println(res + "|size = " + res.length());  
    }  
}  

 

补充:综合编程 , 安全编程 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,