java-Md5加密

1、Md5加密算法步骤:

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MyAlgorithm {
    //把字节转换成16进制字符串
    public  static String toHexString(byte [] bytes){
        //1、定义需频繁对字符串进行拼接的变量
        StringBuilder sb = new StringBuilder("");
        for (int i=0; i < bytes.length; i++){
            //把字节数组的每个元素与255进行与操作
            int j = bytes[i] & 0xFF;
            //与操作后的整数转换成16进制字符串
            String s = Integer.toHexString(j);
            //16个元素的数组,每个元素都是2位,才能得到32位,如果元素不足2位则需补0
            if (s.length()<2){
                sb.append(0);
;            }
            //每个元素都进行拼接
            sb.append(s);
        }
            return sb.toString();
    }
    public  static String  md5(String str) throws NoSuchAlgorithmException {
        // 1、获取指定摘要算法的实例(MessageDigest是抽象类不能不实例化)
        MessageDigest md = MessageDigest.getInstance("MD5");
        // 2、 把要加密的字符串转化成字节数组,因为摘要算法是对字节数组摘要的
        byte[] bytes = str.getBytes();
        // 3、更新摘要算法
        md.update(bytes);
        // 4、对字节数组进行摘要,返回的是16个元素的字节数组
        byte[] bytes1 = md.digest(bytes);
        // 5、把字节数组转化成16进制的字符窜

        return toHexString(bytes1);
    }
    public static void main(String[] args) throws NoSuchAlgorithmException {
        System.out.println(  MyAlgorithm.md5("abcd1234"));
    }
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_39772200/article/details/104397451
今日推荐