MD5密码加密工具

MD5密码加密详解  MD5是什么,MD5是一个信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。它有着不可逆性,是一种单向加密。由于它是一种老而经典的算法,所以现在可以见别人说什么什么MD5不安全之类的话,其实破解MD5是通过解密人的数据库里存着大量的MD5加密过的密码,用这些密码跟需要破解的密码进行匹配,匹配成功就可以破解,匹配不成功,则进行大量运算直到匹配成功,把成功数据存入数据库里,下次再遇到同样需要破解的MD5加密的密码时,直接可以匹配到。自己个人使用的话可以放心用,如果可以用spring Security的框架就更好,因为它自带加密,有着更高的安全性。

现在贴上MD5加密类:


```java
package com.example.myblog.util;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * Created by asus on 2020/5/28 19:25
 * MD5加密类
 */
public class MD5Utils {
        /**
         * str 要加密的字符串
         */
        public static String code(String str){
            try {
                MessageDigest md = MessageDigest.getInstance("MD5");
                md.update(str.getBytes());
                byte[]byteDigest = md.digest();
                int i;
                StringBuffer buf = new StringBuffer("");
                for (int offset = 0; offset < byteDigest.length; offset++) {
                    i = byteDigest[offset];
                    if (i < 0)
                        i += 256;
                    if (i < 16)
                        buf.append("0");
                    buf.append(Integer.toHexString(i));
                }
                //32位加密 得到加密后的字符串
                return buf.toString();
                // 16位的加密
                //return buf.toString().substring(8, 24);
            } catch (NoSuchAlgorithmException e) {
                e.printStackTrace();
                return null;
            }

        }

        public static void main(String[] args) {
            System.out.println(code("xxxx"));
        }
    }

猜你喜欢

转载自blog.csdn.net/LiangBlog/article/details/106648852
今日推荐