java api强大啊,基本上常用的都为我们想到了,没有想到的,也有开源项目。所以开源就是好啊,希望我哪天也能为开源作出自己的贡献。
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->
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
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
本文介绍了一个简单的MD5加密算法实现,使用Java语言编写。通过将字符串转换为UTF-8编码的字节数组,并利用MessageDigest类进行MD5处理,最终得到加密后的十六进制字符串。该实现展示了基本的加密流程及关键步骤。
1万+

被折叠的 条评论
为什么被折叠?



