论坛首页 入门技术论坛

MD5算法,java实现

浏览 4898 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-10-15  
看视频的时候,有听到MD5加密算法,很想了解一下,在网上找了一资料,看了一下API,自己又实现了一下,算是向他们学习一下吧,以作备忘.没用IDE,就只用记事本写,发现自己还真的很慢.

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
class MD5
{
public static void main(String[] args) {

System.out.println("0cc175b9c0f1b6a831c399e269772661");

System.out.println(getMD5("a"));
}
public static String getMD5(String s){

byte[] input=s.getBytes();
String output = null;
//声明一个16进制字母
char[] hexChar={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
try{
//获得一个MD5摘要算法的对象,还可以是SHA等
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(input);
/*
MD5算法的结果是128位一个整数,在这里javaAPI已经把结果转换成字节数组了
*/
byte[] tmp = md.digest();//获得MD5的摘要结果
char[] str = new char[32];
byte b=0;
for(int i=0;i<16;i++){
b=tmp[i];
str[2*i] = hexChar[b>>>4 & 0xf];//取每一个字节的低四位换成16进制字母
str[2*i+1] = hexDigits[b & 0xf];//取每一个字节的高四位换成16进制字母
}
output = new String(str);
}catch(NoSuchAlgorithmException e){
e.printStackTrace();
}
return output;
}
}
   发表时间:2008-10-15  
无任何必要。Java自带MD5加密算法。
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics