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()); } }
补充:综合编程 , 安全编程 ,