Java实现MD5加密的方式与实例代码

Java实现MD5加密的方式与实例代码

什么是MD5加密

MD5是一种常见的加密算法,主要用于对数据进行加密和校验。它可以将任意长度的消息变换成一个128位的消息摘要,用来保证信息传输完整性。

Java实现MD5加密的方式

Java中实现MD5加密,可以使用Java提供的MessageDigest类。该类允许应用程序通过调用update方法来处理数据,并使用digest方法生成摘要。

以下是Java中实现MD5加密的方式:

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

public class MD5Encryptor {
    public static String encrypt(String input) {
        StringBuilder result = new StringBuilder();
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(input.getBytes());
            byte[] mdArray = md.digest();
            for (byte b : mdArray) {
                result.append(Integer.toHexString((b & 0xFF) | 0x100).substring(1, 3));
            }
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return result.toString();
    }
}

MD5加密的实例说明

示例1:加密字符串

以“hello world”字符串为例,参考以下代码:

public class Main {

    public static void main(String[] args) {
        String input = "hello world";
        String output = MD5Encryptor.encrypt(input);
        System.out.println("原始字符串:" + input);
        System.out.println("MD5加密后:" + output);
    }
}

其中,原始字符串为“hello world”,通过调用MD5Encryptor类的encrypt方法进行加密,最后输出加密后的结果。运行结果如下:

原始字符串:hello world
MD5加密后:5eb63bbbe01eeed093cb22bb8f5acdc3

示例2:加密文件

以文件为例,参考以下代码:

import java.io.FileInputStream;
import java.io.IOException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class FileMD5Encryptor {
    public static String encrypt(String filePath) {
        StringBuilder result = new StringBuilder();
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            try (FileInputStream fis = new FileInputStream(filePath)) {
                byte[] dataBytes = new byte[1024];
                int nread;
                while ((nread = fis.read(dataBytes)) != -1) {
                    md.update(dataBytes, 0, nread);
                }
            }
            byte[] mdArray = md.digest();
            for (byte b : mdArray) {
                result.append(Integer.toHexString((b & 0xFF) | 0x100).substring(1, 3));
            }
        } catch (NoSuchAlgorithmException | IOException e) {
            e.printStackTrace();
        }
        return result.toString();
    }
}

以上代码为通过文件路径进行MD5加密操作,并返回加密后的字符串。

public class Main {

    public static void main(String[] args) {
        String inputFilePath = "test.txt";
        String output = FileMD5Encryptor.encrypt(inputFilePath);
        System.out.println("文件路径:" + inputFilePath);
        System.out.println("MD5加密后:" + output);
    }
}

其中,输入文件名为“test.txt”,通过调用FileMD5Encryptor类的encrypt方法进行加密,最后输出加密后的结果。运行结果如下:

文件路径:test.txt
MD5加密后:2bb811d9af9b98a3100b1e41cbfa7436

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java实现MD5加密的方式与实例代码 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • Java实现的程序员老黄历实例

    Java实现的程序员老黄历是一种有趣而又实用的程序,可以帮助程序员们预知未来,并给出一些建议,让程序员收获更多的好运。下面我们一步步来讲解这个程序的实现过程。 实现步骤 首先确定本程序需要实现的功能,以及需要用到的库。本程序需要实现的功能是:根据用户输入的姓名,出生年月日,得到用户的农历生日,并给出一些有趣的建议。程序需要用到的库有: java.util.S…

    Java 2023年5月20日
    00
  • Mybatis联合查询的实现方法

    下面是对于Mybatis联合查询的实现方法的详细讲解及示例。 1. 联合查询的概念 Mybatis的联合查询实际上是多表查询的一种实现方式,也就是说,它是通过对多个数据表进行连接查询,然后再将查询结果进行合并,最终得到一个包含所有所需数据的结果集。联合查询通常用于查询复杂的业务需求,例如需要返回关联表或多个表中的信息的场合。 2. 联合查询的实现方法 在My…

    Java 2023年5月20日
    00
  • js实现简单的星级选择器提交效果适用于评论等

    下面是详细的攻略: JS实现简单的星级选择器提交效果 1. HTML部分 首先,需要在HTML中添加星级选择器的结构,一般是通过多个图标或文字来表示不同的星级: <div class="star-rating"> <span class="star" data-star="1"&g…

    Java 2023年6月16日
    00
  • Spring Boot 员工管理系统超详细教程(源码分享)

    下面我会详细讲解一下“Spring Boot员工管理系统超详细教程(源码分享)”这篇文章的完整攻略。 标题 首先,在文章的开头应该使用H1标题,来让读者清楚地了解主题,如下: Spring Boot员工管理系统超详细教程(源码分享) 简介 接下来,需要在文章的正文中,简介该教程的目的和基本情况,如下: 本教程旨在通过一个完整的Spring Boot项目示例,…

    Java 2023年5月24日
    00
  • Java中的集合框架是什么?

    Java中的集合框架是一个内置的数据结构库,它提供了一组接口和类,用于处理和管理元素的类集合。Java集合框架有助于开发人员以更高效、更灵活和更可扩展的方式处理复杂数据。 Java集合框架中的类和接口被组织成三个主要的继承层次结构:Collection、Map 和 Iterator。其中,Collection是表示一组对象的根接口,Map是表示一组键值对(k…

    Java 2023年4月27日
    00
  • java数组实现循环队列示例介绍

    让我来详细讲解一下“java数组实现循环队列示例介绍”的完整攻略。 什么是循环队列 循环队列是一种队列,但不同于普通队列,它的队尾指针会在数组末尾时绕回到数组头部,形成一个环状空间的队列,从而可以更好的利用数组的空间。循环队列的实现方法有很多种,下面我们主要介绍一种用Java数组实现的方法。 Java实现循环队列的步骤 实现循环队列的主要步骤如下: 创建数组…

    Java 2023年5月26日
    00
  • Java Date类常用示例_动力节点Java学院整理

    Java Date类常用示例攻略 什么是Date类 在Java中,Date类是一个代表日期和时间的类,用来表示一个固定的日期或时间点。 Date类的构造方法 Date():用当前日期和时间构造一个Date对象。 Date(long date):用一个标准的毫秒数来构造一个Date对象。 Date(int year, int month, int date):…

    Java 2023年5月20日
    00
  • MyBatis常用标签大全

    Sure,下面就是关于”MyBatis常用标签大全”的详细攻略: MyBatis常用标签大全 MyBatis是一款ORM框架,常用于在Java项目中与数据库进行交互。在MyBatis中,我们可以通过XML文件或者注解的方式来完成数据访问层的操作。而XML文件中的标签则是我们使用MyBatis时非常常见的一种方式。 下面将介绍MyBatis常用的标签,包括: …

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部