Java后端实现MD5加密的方法
前言
在我们开发是要考虑这个功能,当用户忘记密码的情况下,我们需要动态的发给他一个6位的随机密码,通过即时通,短信,微信等。并同时修改数据库中的原密码为这6位的随机密码。让用户再去修改密码。
同时在数据库中的密码必须存为密文,于是需要使用到MD5加密。生成的6位随机密码需要保密,不能在前台处理,只能放在后端。于是我选择放在了控制层中
示例代码
//传入任何需要加密的文本进行加密 publicstaticStringgetMd5(Stringstring){ try{ MessageDigestmd=MessageDigest.getInstance("MD5"); md.update(string.getBytes); bytehash=md.digest; StringBuffersb=newStringBuffer; inti=0; for(intoffset=0;offset<hash.length;offset++){ i=hash[offset]; if(i<0){ i+=256; } if(i<16){ sb.append("0"); } sb.append(Integer.toHexString(i)); } returnsb.toString; } catch(NoSuchAlgorithmExceptione){ thrownewRuntimeException(e); } }
此处使用的是32位的加密,16位与32位的区别是16位取的是32位中间的16位。
StringPASSWORD_=String.valueOf((int)(Math.random*1000000)); if(empService.updateEmpPassword(EMP_ID_,BaseUtils.getMd5(PASSWORD_),operator)==0){ thrownewRuntimeException("随机密码生成失败!"); } Stringxele="<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能有所帮助,如果有问题可以进行留言交流,谢谢大家对毛票票的支持。