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 }
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 }
浙公网安备 33010602011771号