如何将密码与盐进行MD5加密处理?
- 内容介绍
- 文章标签
- 相关推荐
本文共计328个文字,预计阅读时间需要2分钟。
javapublic static String[] parsePassToMd5(String password) { // 定义两个字符串数组 String[] result=new String[2]; // 获取一个长度较长的随机字符串作为盐值 String salt=getRandomSalt(); // 将密码和盐值存储到数组中 result[0]=salt; result[1]=md5(password + salt); return result;}
gistfile1.txt//向数据库存入密文和盐值 public static String[] parsePassToMd5(String password) { //定义两个存字符串的数组 String[] result = new String[2]; //获取一个长度为的随机字符串 String salt = getRandomString(8); // password和salt弄到一起 String lainText = password + salt; //对这个字符串进行md5加密 result[0] = parseStrToMd5L32(lainText); //把盐值存入数组中 result[1] = salt; return result; } //返回加密后的密文 public static String parseStrToMd5L32(String lainText) { System.out.println(lainText); String resultStr = null; try { //jdk内部提供的一个加密类,选择进行加密的算法 MessageDigest md5 = MessageDigest.getInstance("MD5"); //加密的方法 byte[] bytes = md5.digest(lainText.getBytes()); //把密文转成字符串 StringBuffer stringBuffer = new StringBuffer(); for (int i = 0; i < bytes.length; i++) { int bt = bytes[i] & 0xff; if (bt < 16) { stringBuffer.append(0); } stringBuffer.append(Integer.toHexString(bt)); } resultStr = stringBuffer.toString(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return resultStr; } //进行密码比较,因为存入数据库中的password字段的值,你无法重新解析成功为密码 //输入的密码,和从数据库中的salt取出来,进行加密后,再比较 public static boolean comparePass(String pass,String salt,String md5Pass) { boolean bool = false; String lainText = pass+salt; if(parseStrToMd5L32(lainText).equals(md5Pass)){ bool = true; } return bool; }
本文共计328个文字,预计阅读时间需要2分钟。
javapublic static String[] parsePassToMd5(String password) { // 定义两个字符串数组 String[] result=new String[2]; // 获取一个长度较长的随机字符串作为盐值 String salt=getRandomSalt(); // 将密码和盐值存储到数组中 result[0]=salt; result[1]=md5(password + salt); return result;}
gistfile1.txt//向数据库存入密文和盐值 public static String[] parsePassToMd5(String password) { //定义两个存字符串的数组 String[] result = new String[2]; //获取一个长度为的随机字符串 String salt = getRandomString(8); // password和salt弄到一起 String lainText = password + salt; //对这个字符串进行md5加密 result[0] = parseStrToMd5L32(lainText); //把盐值存入数组中 result[1] = salt; return result; } //返回加密后的密文 public static String parseStrToMd5L32(String lainText) { System.out.println(lainText); String resultStr = null; try { //jdk内部提供的一个加密类,选择进行加密的算法 MessageDigest md5 = MessageDigest.getInstance("MD5"); //加密的方法 byte[] bytes = md5.digest(lainText.getBytes()); //把密文转成字符串 StringBuffer stringBuffer = new StringBuffer(); for (int i = 0; i < bytes.length; i++) { int bt = bytes[i] & 0xff; if (bt < 16) { stringBuffer.append(0); } stringBuffer.append(Integer.toHexString(bt)); } resultStr = stringBuffer.toString(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return resultStr; } //进行密码比较,因为存入数据库中的password字段的值,你无法重新解析成功为密码 //输入的密码,和从数据库中的salt取出来,进行加密后,再比较 public static boolean comparePass(String pass,String salt,String md5Pass) { boolean bool = false; String lainText = pass+salt; if(parseStrToMd5L32(lainText).equals(md5Pass)){ bool = true; } return bool; }

