导入:

  1. import org.apache.commons.codec.digest.DigestUtils;

  代码:

  1. public static String md5(String src) {
  2. return DigestUtils.md5Hex(src);
  3. }
  4.  
  5. private static final String salt = "1a2b3c4d";
  6.  
  7. public static String inputPassToFormPass(String inputPass) {
  8. String str = ""+salt.charAt(0)+salt.charAt(2) + inputPass +salt.charAt(5) + salt.charAt(4);
  9. System.out.println(str);
  10. return md5(str);
  11. }
  12.  
  13. public static String formPassToDBPass(String formPass, String salt) {
  14. String str = ""+salt.charAt(0)+salt.charAt(2) + formPass +salt.charAt(5) + salt.charAt(4);
  15. return md5(str);
  16. }
  17.  
  18. public static String inputPassToDbPass(String inputPass, String saltDB) {
  19. String formPass = inputPassToFormPass(inputPass);
  20. String dbPass = formPassToDBPass(formPass, saltDB);
  21. return dbPass;
  22. }

  md5:帮助类

  1. import java.io.File;
  2. import java.io.FileInputStream;
  3. import java.nio.MappedByteBuffer;
  4. import java.nio.channels.FileChannel;
  5. import java.security.MessageDigest;
  6.  
  7. /**
  8. * MD5加密工具类
  9. */
  10. public class MD5Util {
  11. private static final char DIGITS[] = { '0', '1', '2', '3', '4', '5', '6',
  12. '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
  13.  
  14. /**
  15. * 获取文件的MD5码
  16. *
  17. * @param absPath
  18. * 文件路径
  19. * @return 文件的MD5码
  20. */
  21. public final static String getFileMD5(String absPath) {
  22. try {
  23. File file = new File(absPath);
  24. MessageDigest mdTemp = MessageDigest.getInstance("MD5");
  25. FileInputStream fis = new FileInputStream(file);
  26. FileChannel filechannel = fis.getChannel();
  27. MappedByteBuffer mbb = filechannel
  28. .map(FileChannel.MapMode.READ_ONLY, 0, file.length());
  29. mdTemp.update(mbb);
  30. byte[] md = mdTemp.digest();
  31. int j = md.length;
  32. char str[] = new char[j * 2];
  33. int k = 0;
  34. for (int i = 0; i < j; i++) {
  35. byte byte0 = md[i];
  36. str[k++] = DIGITS[byte0 >>> 4 & 0xf];
  37. str[k++] = DIGITS[byte0 & 0xf];
  38. }
  39. fis.close();
  40. return new String(str);
  41. } catch (Exception e) {
  42. return "";
  43. }
  44. }
  45.  
  46. /**
  47. * 获取指定字符串的MD5码
  48. *
  49. * @param s
  50. * 字符串
  51. * @return 字符串的MD5码
  52. */
  53. public final static String getMD5(String s) {
  54. char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
  55. 'a', 'b', 'c', 'd', 'e', 'f' };
  56. try {
  57. byte[] strTemp = s.getBytes();
  58. MessageDigest mdTemp = MessageDigest.getInstance("MD5");
  59. mdTemp.update(strTemp);
  60. byte[] md = mdTemp.digest();
  61. int j = md.length;
  62. char str[] = new char[j * 2];
  63. int k = 0;
  64. for (int i = 0; i < j; i++) {
  65. byte byte0 = md[i];
  66. str[k++] = hexDigits[byte0 >>> 4 & 0xf];
  67. str[k++] = hexDigits[byte0 & 0xf];
  68. }
  69. return new String(str);
  70. } catch (Exception e) {
  71. return null;
  72. }
  73. }
  74.  
  75. public static void main(String[] args) {
  76. System.out.println(getMD5("admin"));
  77. }
  78. }

  

Java 两次MD5的更多相关文章

  1. android环境下两种md5加密方式

    在平时开发过程中,MD5加密是一个比较常用的算法,最常见的使用场景就是在帐号注册时,用户输入的密码经md5加密后,传输至服务器保存起来.虽然md5加密经常用,但是md5的加密原理我还真说不上来,对md ...

  2. java生成字符串md5函数类(javaSE)

    //实现生成MD5值 import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.B ...

  3. JAVA加密技术-----MD5 与SHA 加密

    关于JAVA的加密技术有很多很多,这里只介绍加密技术的两种 MD5与 SHA. MD5与SHA是单向加密算法,也就是说加密后不能解密. MD5 ---信息摘要算法,广泛用于加密与解密技术,常用于文件校 ...

  4. Java 常见摘要算法——md5、sha1、sha256

    目录 摘要算法简介 md5 使用jdk内置方法实现md5加密 使用bc方式实现md5加密 使用cc方式实现md5加密 sha1 使用jdk内置方法实现sha1加密 使用bc方式实现sha1加密 使用c ...

  5. java中使用MD5进行加密 BASE64Encoder 编码

    原文地址:http://www.cnblogs.com/weiwangnuanyang/articles/4326336.html java中使用MD5进行加密     在各种应用系统的开发中,经常需 ...

  6. java中使用MD5进行加密

    java中使用MD5进行加密     在各种应用系统的开发中,经常需要存储用户信息,很多地方都要存储用户密码,而将用户密码直接存储在服务器上显然是不安全的,本文简要介绍工作中常用的 MD5加密算法,希 ...

  7. Java 语言实现 MD5 加密

    Java 语言实现 MD5 加密 背景说明 在实际项目中,为了安全性考虑,经常要求账号密码是以加密后的密文形式,保存到数据库中. 这样,即使有人获取到了数据库中的密文密码,也不知道明文密码信息是什么, ...

  8. java生成字符串md5函数类

    import java.security.MessageDigest; /** * Md5 工具 */ public class Md5Util { private static MessageDig ...

  9. Java 自带MD5加密 Demo

    package demo; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; pub ...

随机推荐

  1. opencontrail—VXLAN模式下数据包的传输过程

    在这篇文章中,我们将看到VM生成的数据包如何能够到达另一个VM或外部资源,Neutron使用OpenContrail插件的上下文中的关键概念/组件是什么. 我们将重点介绍OpenContrail,它如 ...

  2. VUE项目中使用mint-ui框架总结

    针对PC端,element-ui可谓是首选了,UI体验效果很好. element-ui 框架官网:http://element.eleme.io/#/zh-CN/component/installat ...

  3. 牛客网 272B Xor Path(树上操作)

    题目链接:Xor Path 题意:每个顶点的点权为Ai,任意两点路径上点权异或和为Path(i,j),求所有Path(i,j)和. 题解:考虑每个顶点被用到的次数,分以下三种情况: 1.本身和其他顶点 ...

  4. CF1114D 【Flood Fill】

    Solution 一看就是很水的区间DP \(dp[i][j]\)表示区间\([l,r]\)都涂成同色的代价. \(dp[i][j] = min( dp[i][j], dp[i][k] + dp[k] ...

  5. Apache的安装与配置+PHP

     https://blog.csdn.net/u012130971/article/details/79284937 文件夹名称不要有空格

  6. Django web编程1 -- 创建项目和应用

    python:3.7.2 Django:2.1.7 1.创建虚拟环境 虚拟环境是系统的一个位置,可以在其中安装包,并将其与其他python包隔离. 创建目录,命名为learning_log,并切换到这 ...

  7. Tensorflow计算正确率、精确率、召回率

    二分类模型的评价指标 https://www.cnblogs.com/xiaoniu-666/p/10511694.html 参考tf的方法 predictions = tf.argmax(predi ...

  8. 二周工作总结(php方向)

    前言:年后回来在忙着换工作,最终拿到了三家的offer,最后权衡去了一家实业公司做oa系统的开发,刚入职做一些技术的总结同时记录自己的技术进步 (一) 用mysql视图实现多个表之间的联查 优点:在实 ...

  9. 关于使用jwt编写接口时候对token判断时候错误的机制处理

    前言:php在使用接口时候很多时候都是需要带token的,如果不对token进行校验那么别人就能够随意编写一个token进入你的接口拿数据,应该怎样处理呢? //生成token public func ...

  10. ArcGis使用字段别名Alias Name导出Excel

    在ArcMap10.3+(根据官网描述应该是,作者测试使用10.5,可行)以后的版本,可以使用ArcToolbox工具导出Excel. 工具位置ConversionTools——Excel——Tabl ...