欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java的md5加密实例

程序员文章站 2022-03-14 22:49:21
...
package com.zgj.md5_learn;

import java.math.BigInteger;
import java.security.MessageDigest;
import java.util.Scanner;

/**
 * 32位md5加密方法操作类
 */
public class MD5Test {

    public static String getMD5(String pwd){
        try{
            //java.security.MessageDigest类用于为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法。
            // 简单点说就是用于生成散列码。
            // 信息摘要是安全的单向哈希函数,它接收任意大小的数据,输出固定长度的哈希值。
            //创建具有指定算法名称的MessageDigest 实例对象。
            MessageDigest messageDigest = MessageDigest.getInstance("MD5");
            //使用指定的字节数组更新摘要。
            messageDigest.update(pwd.getBytes());
            //通过执行诸如填充之类的最终操作完成哈希计算。
            byte[] res = messageDigest.digest();
            //BigInteger构造方法的signum参数表示转换后数的符号,1表示正数,-1表示负数
            //toString方法的参数radix表示转换的进制数,此处是16进制
            return new BigInteger(1,res).toString(16);
        }catch (Exception e){
            System.out.println("加密异常.....");
            e.printStackTrace();
            return null;
        }
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String pwd;
        while (true){
            System.out.println("请输入:");
            pwd = scanner.next();
            System.out.println("加密结果是:");
            System.out.println(getMD5(pwd));
        }
    }
}

相关标签: java md5