在各种应用系统的开发中,经常需要存储用户信息,很多地方都要存储用户密码,而将用户密码直接存储在服务器上显然是不安全的,所以今天华清Java学院小编就和大家分享一下Java中的md5加密算法是怎么实现的?
什么是Javamd5算法?
MD5加密算法为现在应用广泛的哈希算法之一,该算法广泛应用于互联网网站的用户文件加密,能够将用户密码加密为128位的长整数。数据库并不明文存储用户密码,而是在用户登录时将输入密码字符串进行MD5加密,与数据库中所存储的MD5值匹配,从而降低密码数据库被盗取后用户损失的风险。
JavaMD5加密算法实现代码如下:
1 package com.b510.note;
3 import java.math.BigInteger;
4 import java.security.MessageDigest;
5 import java.security.NoSuchAlgorithmException;
6
7 /**
8 * MD5加密
12 */
13 public class MD5 {
14
15 public static void main(String[] args) {
16 System.out.println(MD5.getMD5("123456"));
17 }
18
19 /**
20 * 用md5编码后的码值
22 * @param sInput
23 * 明码
24 * @return md5加密后的密码
25 */
26 public static String getMD5(String sInput) {
27
28 String algorithm = "";
29 if (sInput == null) {
30 return "null";
31 }
32 try {
33 algorithm = System.getProperty("MD5.algorithm", "MD5");
34 } catch (SecurityException se) {
35 }
36 MessageDigest md = null;
37 try {
38 md = MessageDigest.getInstance(algorithm);
39 } catch (NoSuchAlgorithmException e) {
40 e.printStackTrace();
41 }
42 byte buffer[] = sInput.getBytes();
43
44 for (int count = 0; count < sInput.length(); count++) {
45 md.update(buffer, 0, count);
46 }
47 byte bDigest[] = md.digest();
48 BigInteger bi = new BigInteger(bDigest);
49 return (bi.toString(16));
50 }
51 }
运行效果:
1 186d636867f51c667893c1b1b3d96dc3
我们可以根据自己的需要,来得到自己想要的md5加密后的密文;
1 //这里的数字是可以根据需要而进行改变的
2 return (bi.toString(16));
热点新闻