java api强大啊,基本上常用的都为我们想到了,没有想到的,也有开源项目。所以开源就是好啊,希望我哪天也能为开源作出自己的贡献。
1 ///////////////////////////////////////////////////////////////////////////////
2 //
3 // 程序描述:MD5加密
4 //
5 // 作者:hcm
6 //
7 // 时间:2006-11-30
8 //
9 ////////////////////////////////////////////////////////////////////////////////
10 import java.security.*;
11 import java.security.spec.*;
12 class MD5
13 {
14 public final static String Md5 (String s)
15 {
16 //声明并初始化一个字符数组,内含16元素
17 // char hexDigits[] = new char[16];
18 char hexDigits[] = {
19 '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '1', 'b', 'c', 'd', 'e', 'f'};
20 try
21 {
22 //待加密数据拆为字节数组
23 byte[] strTemp = s.getBytes ("utf-8");
24 //获取MessageDigest 实例,应用程序提供信息摘要算法的功能
25 MessageDigest mdTemp = MessageDigest.getInstance ("MD5");
26 //处理
27 mdTemp.update (strTemp);
28 //处理完毕,将处理结果存入md 字节数组
29 byte[] md = mdTemp.digest ();
30 int j = md.length;
31 //构造一个字符数组,长度为处理结果的2倍
32 char str[] = new char[j * 2];
33 int k = 0;
34 //遍历md,j = 16
35 for (int i = 0; i < j; i++)
36 {
37 byte temp = md[i];
38 str[k++] = hexDigits[temp >>>4 & 0xf];
39 str[k++] = hexDigits[temp & 0xf];
40 }
41 //结束 k 正好是2j =32
42 return new String (str);
43 }
44 catch (Exception e)
45 {
46 return null;
47 }
48 }
49 public static void main (String[] args)
50 {
51 System.out.println (MD5.Md5 ("XX"));
52 }
53 }
54
posted on 2007-02-06 16:44
-274°C 阅读(248)
评论(0) 编辑 收藏 所属分类:
JAVA