md5加密

md5又称信息摘要算法5,是对一个字符串进行加密,得到一个16位或者32位的字符串。

MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。举个例子,你将一段话写在一个叫 readme.txt文件中,并对这个readme.txt产生一个MD5的值并记录在案,然后你可以传播这个文件给别人,别人如果修改了文件中的任何内容,你对这个文件重新计算MD5时就会发现(两个MD5值不相同)。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。

 

360云盘的demo:https://yunpan.cn/ckpaLHxcq2hrB  访问密码 6569

 

小写加密即只要把数组中的大写字母换成对应的小写字母即可。

 

md5的32位算法

 1 public final static String md5(String str) {
 2         char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
 3 
 4         try {
 5             byte[] btInput = str.getBytes();
 6 
 7             MessageDigest mDigest = MessageDigest.getInstance("MD5");
 8             mDigest.update(btInput);// 使用指定的字节更新摘要
 9             byte[] md = mDigest.digest();// 获得密文
10 
11             // 把密文转换成十六进制的字符串形式
12             int j = md.length;
13             char s[] = new char[j * 2];
14             int k = 0;
15             for (int i = 0; i < j; i++) {
16                 byte bt = md[i];
17                 s[k++] = hexDigits[bt >>> 4 & 0xf];
18                 s[k++] = hexDigits[bt & 0xf];
19             }
20             return new String(s);
21         } catch (Exception e) {
22             e.printStackTrace();
23 
24             return null;
25         }
26     }
32位

md5的64位算法

 1 public final static String md516(String str) {
 2         char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
 3 
 4         try {
 5             byte[] btInput = str.getBytes();
 6 
 7             MessageDigest mDigest = MessageDigest.getInstance("MD5");
 8             mDigest.update(btInput);// 使用指定的字节更新摘要
 9             byte[] md = mDigest.digest();// 获得密文
10 
11             // 把密文转换成十六进制的字符串形式
12             int j = md.length;
13             char s[] = new char[j * 2];
14             int k = 0;
15             for (int i = 0; i < j; i++) {
16                 byte bt = md[i];
17                 s[k++] = hexDigits[bt >>> 4 & 0xf];
18                 s[k++] = hexDigits[bt & 0xf];
19             }
20             
21             String strAll = new String(s);
22             
23             return strAll.substring(8, 23);
24         } catch (Exception e) {
25             e.printStackTrace();
26 
27             return null;
28         }
29     }
16位

posted on 2016-09-29 17:02  小阿仙的fans  阅读(236)  评论(0)    收藏  举报

导航