1.md5加密介绍
MD5算法是广泛使用的杂凑函数,也就是哈希函数,英文全拼是:Message Digest Algorithm,对应的中文名字是消息摘要算法。
MD5加密:将字符串转换成 32位的字符串(随机生成16进制的字符0-F、不可逆)
MD5加密的特点:
(1)一个任意长度的数据,经过MD5计算后就会得到一个长度固定的十六进制字符串;
(2)MD5算法消耗较低,不会在性能在造成压力;
(3)抗修改性很强,相差极小的两个原数据的MD5值差异会很大
(4)抗碰撞性也很强,伪造数据的难度很大
2.MD5工具类
package com.example.administrator.test62360safeguard.Utils; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class MD5Util { public static void main(String[] args) { String psw="123"; encoder(psw); } /** * 给指定字符串按照md5算法进行加密 * @param psw 需要加密的密码 */ public static String encoder(String psw) { try { psw=psw+"safeguard"; //密码加盐 //1.指定加密算法 MessageDigest digest=MessageDigest.getInstance("MD5"); //2.将需要的字符串转换为byte类型的数组,然后进行随机哈希过程 byte[] bs=digest.digest(psw.getBytes()); System.out.println(bs.length); //3.循环遍历bs,然后让其生成32位的字符串(固定写法),拼接字符串 StringBuffer sb=new StringBuffer(); for (byte b : bs) { int i=b&0xff; //固定写法 //将int类型的i转换成16进制的字符 String hexStr=Integer.toHexString(i); if(hexStr.length()<2){ hexStr="0"+hexStr; } sb.append(hexStr); } //System.out.println(sb); return sb.toString(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return ""; } }
原文地址:https://www.cnblogs.com/luckyplj/p/10818070.html
时间: 2024-10-10 07:09:55