Java后端实现MD5加密的方法

 更新时间:2016年08月29日 11:29:40   投稿:daisy  
有的时候因为业务的需要,我们要制作关于密码的修改功能。而关于密码的加密一般都是用MD5,那么这篇文章将介绍如何在Java的后端实现MD5加密,有需要的可以参考借鉴。

前言

在我们开发是要考虑这个功能,当用户忘记密码的情况下,我们需要动态的发给他一个6位的随机密码,通过即时通,短信,微信等。并同时修改数据库中的原密码为这6位的随机密码。让用户再去修改密码。

同时在数据库中的密码必须存为密文,于是需要使用到MD5加密。生成的6位随机密码需要保密,不能在前台处理,只能放在后端。于是我选择放在了控制层中

示例代码

//传入任何需要加密的文本进行加密
public static String getMd5(String string) {
  try {
 MessageDigest md = MessageDigest.getInstance("MD5");
 md.update(string.getBytes);
 byte hash = md.digest;
 StringBuffer sb = new StringBuffer;
 int i = 0;
 for (int offset = 0; offset < hash.length; offset++) {
 i = hash[offset];
 if (i < 0) {
 i += 256;
 }
 if (i < 16) {
 sb.append("0");
 }
 sb.append(Integer.toHexString(i));
 }

 return sb.toString;
  }
  catch (NoSuchAlgorithmException e) {
 throw new RuntimeException(e);
  }
 }

此处使用的是32位的加密,16位与32位的区别是16位取的是32位中间的16位。

String PASSWORD_ = String.valueOf((int) (Math.random * 1000000));

 if (empService.updateEmpPassword(EMP_ID_, BaseUtils.getMd5(PASSWORD_), operator) == 0) {
 throw new RuntimeException("随机密码生成失败!");
 }
 String xele = "<SendMessage><AM_Name>" + EMP_CODE_ + "</AM_Name><PhoneNum></PhoneNum><UserId></UserId><MessageTxt>您的公文管理系统新密码是:" + PASSWORD_ + "</MessageTxt><SystemName>公文管理系统</SystemName><Type>即时通</Type><Access></Access><Email></Email><IsBack></IsBack><IsEncrypt></IsEncrypt><ISPriority></ISPriority><Ohter1></Ohter1><Ohter2></Ohter2></SendMessage><br />";

然后调用即时通预留接口

instanceMsgService.AMToMessIFCheck(xele, null, operator);

注意:主要看java后端怎么去做MD5的加密!!

结束语

以上就是关于在Java后端实现MD5加密方法的全部内容,希望这篇文章对大家学习Java能有所帮助,如果有问题可以进行留言交流,谢谢大家对脚本之家的支持。

相关文章

  • SpringBoot快速实现接口消息加密的过程详解

    SpringBoot快速实现接口消息加密的过程详解

    在项目中,为了保证数据的安全,我们常常会对传递的数据进行加密,常用的加密算法包括对称加密(AES)和非对称加密(RSA),博主选取码云上最简单的API加密项目进行下面的讲解,需要的朋友可以参考下
    2023-11-11
  • System.currentTimeMillis()计算方式与时间的单位转换详解

    System.currentTimeMillis()计算方式与时间的单位转换详解

    这篇文章主要介绍了System.currentTimeMillis()计算方式与时间的单位转换详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • Java中IO流简介_动力节点Java学院整理

    Java中IO流简介_动力节点Java学院整理

    Java io系统的设计初衷,就是为了实现“文件、控制台、网络设备”这些io设置的通信。接下来通过本文给大家介绍Java中IO流简介,感兴趣的朋友一起看看吧
    2017-05-05
  • 微服务Springcloud之Feign的基本使用

    微服务Springcloud之Feign的基本使用

    这篇文章主要介绍了微服务Springcloud之Feign的基本使用,Spring Cloud集成Feign并对其进行了增强,使Feign支持了Spring MVC注解,需要的朋友可以参考下
    2023-03-03
  • Java中HashMap和Hashtable的区别小结

    Java中HashMap和Hashtable的区别小结

    本文主要介绍了Java中HashMap和Hashtable的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Java接口默认方法带来的问题分析【二义性问题】

    Java接口默认方法带来的问题分析【二义性问题】

    这篇文章主要介绍了Java接口默认方法带来的问题,结合实例形式分析了java接口带来的二义性问题,需要的朋友可以参考下
    2019-08-08
  • Java实现时间片轮转调度算法的示例代码

    Java实现时间片轮转调度算法的示例代码

    时间片轮转调度是一种最古老,最简单,最公平且使用最广的算法,这篇文章主要为大家介绍了如何利用Java实现这一算法,需要的可以参考一下
    2023-07-07
  • Java Stream如何将List分组成Map或LinkedHashMap

    Java Stream如何将List分组成Map或LinkedHashMap

    这篇文章主要给大家介绍了关于Java Stream如何将List分组成Map或LinkedHashMap的相关资料,stream流是Java8的新特性,极大简化了集合的处理操作,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-12-12
  • springboot实现邮箱发送(激活码)功能的示例代码

    springboot实现邮箱发送(激活码)功能的示例代码

    这篇文章主要为大家详细介绍了如何利用springboot实现邮箱发送(激活码)功能,文中的示例代码简洁易懂,有需要的小伙伴可以跟随小编一起学习一下
    2023-10-10
  • 利用java获取某个文件夹下的所有文件

    利用java获取某个文件夹下的所有文件

    这篇文章主要给大家介绍了关于如何利用java获取某个文件夹下的所有文件的相关资料,在从事web开发工作中,经常需要对本地某一个目录下的文件进行处理,需要的朋友可以参考下
    2023-07-07

最新评论