当前位置:主页 > java教程 > Java中MD5加密知识点

Java中MD5加密工具类实例分享

发布:2019-06-19 09:36:56 55


给大家整理一篇相关的编程文章,网友寿倩美根据主题投稿了本篇教程内容,涉及到java、md5加密工具类、java、md5工具类、加盐、md5、java、工具类、Java中MD5加密知识点相关内容,已被737网友关注,内容中涉及的知识点可以在下方直接下载获取。

Java中MD5加密知识点

编程中经常有用到MD5加密的情况,Java语言并没有像PHP一样提供原生的MD5加密字符串的函数,需要MD5加密的时候,往往需要自己写。

代码如下:

import java.security.MessageDigest;
public class MD5 {
	//公盐
	private static final String PUBLIC_SALT = "demo" ;
	//十六进制下数字到字符的映射数组 
	private final static String[] hexDigits = {"0", "1", "2", "3", "4", 
	  "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"};
	/**
  * 用户密码加密,盐值为 :私盐+公盐
  * @param password 密码
  * @param salt 私盐
  * @return MD5加密字符串
  */
	public static String encryptPassword(String password,String salt){
		return encodeByMD5(PUBLIC_SALT+password+salt);
	}
	/**
  * md5加密算法
  * @param originString
  * @return 
  */
	private static String encodeByMD5(String originString){
		if (originString != null){
			try{
				//创建具有指定算法名称的信息摘要 
				MessageDigest md = MessageDigest.getInstance("MD5");
				//使用指定的字节数组对摘要进行最后更新,然后完成摘要计算 
				byte[] results = md.digest(originString.getBytes());
				//将得到的字节数组变成字符串返回 
				String resultString = byteArrayToHexString(results);
				return resultString.toUpperCase();
			}
			catch(Exception ex){
				ex.printStackTrace();
			}
		}
		return null;
	}
	/** 
  * 转换字节数组为十六进制字符串 
  * @param  字节数组 
  * @return 十六进制字符串 
  */
	private static String byteArrayToHexString(byte[] b){
		StringBuffer resultSb = new StringBuffer();
		for (int i = 0; i < b.length; i++){
			resultSb.append(byteToHexString(b[i]));
		}
		return resultSb.toString();
	}
	/** 将一个字节转化成十六进制形式的字符串  */
	private static String byteToHexString(byte b){
		int n = b;
		if (n < 0) 
		   n = 256 + n;
		int d1 = n / 16;
		int d2 = n % 16;
		return hexDigits[d1] + hexDigits[d2];
	}
}

总结

以上就是本文关于Java语言描述MD5加密工具类实例代码的全部内容,希望对大家有所帮助。


参考资料

相关文章

  • JAVA并发工具常用设计套路示例代码

    发布:2020-02-14

    这篇文章主要介绍了了解JAVA并发工具常用设计套路,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下


  • java ReentrantLock条件锁实现原理示例详解

    发布:2023-03-03

    这篇文章主要为大家介绍了java ReentrantLock条件锁实现原理示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪


  • java启动如何设置JAR包内存大小

    发布:2023-04-04

    这篇文章主要介绍了java启动如何设置JAR包内存大小问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


  • 浅谈java实现mongoDB的多条件查询

    发布:2022-10-20

    给网友朋友们带来一篇关于java的教程,这篇文章主要介绍了java实现mongoDB的多条件查询,具有一定参考价值,需要的朋友可以参考下。


  • 解决java向mysql插入数据乱码的方法

    发布:2021-06-02

    这篇文章主要为大家详细介绍了java向mysql插入数据乱码问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


  • Java描述数据结构学习之链表的增删改查详解

    Java描述数据结构学习之链表的增删改查详解

    发布:2022-06-23

    给网友们整理关于Java的教程,这篇文章主要给大家介绍了关于Java描述数据结构学习之链表的增删改查的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随


  • Java中闭包实例

    发布:2020-01-28

    这篇文章主要介绍了Java中闭包简单代码示例,具有一定借鉴价值,需要的朋友可以参考下


  • 详解Java-Jackson使用

    发布:2022-04-03

    这篇文章主要介绍了Java-Jackson使用详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下


网友讨论