现在的位置: 首页 > 综合 > 正文

Java MD5加密算法学习

2018年09月19日 ⁄ 综合 ⁄ 共 1056字 ⁄ 字号 评论关闭

       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());
	}
}






抱歉!评论已关闭.