首页 > 编程语言 >MD5加密工具类-Java

MD5加密工具类-Java

时间:2022-11-23 21:34:34浏览次数:38  
标签:messageDigest MessageDigest BigInteger 加密 明文 source Java MD5

import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * @author ycjstart
 * @create 2022-11-23 21:19
 */
public class MD5Util {

    /**
     * 针对明文字符串执行MD5加密
     */
    public static String encode(String source) {

        // 1.判断明文字符串是否有效
        if (source == null || "".equals(source)) {
            throw new RuntimeException("用于加密的明文不可为空");
        }

        // 2.声明算法名称
        String algorithm = "md5";

        // 3.获取MessageDigest对象
        MessageDigest messageDigest = null;
        try {
            messageDigest = MessageDigest.getInstance(algorithm);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }

        // 4.获取明文字符串对应的字节数组
        byte[] input = source.getBytes();

        // 5.执行加密
        assert messageDigest != null;
        byte[] output = messageDigest.digest(input);

        // 6.创建BigInteger对象
        int signum = 1;
        BigInteger bigInteger = new BigInteger(signum, output);

        // 7.按照16进制将bigInteger的值转换为字符串
        int radix = 16;

        return bigInteger.toString(radix).toUpperCase();
    }

}

标签:messageDigest,MessageDigest,BigInteger,加密,明文,source,Java,MD5
From: https://www.cnblogs.com/MuYg/p/16920181.html

相关文章

  • java后端JVM面试资料
    目录 JDK,JRE,JVM三者的区别与联系讲⼀讲JVM跨平台与跨语⾔JVM的运⾏时数据区有哪些?什么是堆内存?堆内存包含哪些部分?什么是内存溢出什么是内存泄漏?与内存溢出有什......
  • Java 反射
         反射=反向射击=Java向自己射击=Java对自身进行描述=Java用研究外部事物的方法反过来研究自己——反射的好处:1.可以在程序运行过程中,操作这些对象。2.......
  • 真的,Java并发编程入门看这个就够了
    Java并发编程学习之02Java并发编程入门指南(真的,Java并发编程入门看这个就够了)1.Java天生多线程importjava.lang.management.ManagementFactory;importjava.lang......
  • 真的,Java并发编程基础入门看这个就够了
    Java并发编程学习之02Java并发编程入门指南@目录1.Java天生多线程2.Java启动多线程实现方式2.1实现代码2.2Thread和Runnable的区别2.3start和run方法的区别3.Java......
  • Java学习四
    一.小结1.循环语句有三类:while循环,do-while循环和for循环2.循环中需要重复执行的语句所构成的整体称为循环体3.循环体执行一次称为循环的一次迭代4.无限循环是指循环语......
  • Java理论(一)
    什么是javaJava是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言......
  • Java原型模式大大节省资源测试
    但你需要创建大量相同对象的时候,使用原型模式吧!原型模式    克隆猫猫:publicclassCloneCatimplementsCloneable{publicCloneCat(){try{......
  • Java实现平衡二叉搜索树(AVL树)
    上一篇实现了二叉搜索树,本章对二叉搜索树进行改造使之成为平衡二叉搜索树(BalancedBinarySearchTree)。不平衡的二叉搜索树在极端情况下很容易退变成链表,与新增/删除/......
  • java中级考试
    选择2020分判断1010分解答55分程序页面+综合45分 第2章Css选择器CSS规则由三部分构成:选择符,属性和属性值   选择符{属性:属性值;属性:属性值;...}CSS......
  • Java工具库Guava的数学运算常用方法示例代码
    场景Java核心工具库Guava介绍以及Optional和Preconditions使用进行非空和数据校验:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/127683387为什么使用Gu......