Java如何实现密码加密

yizhihongxing

Java实现密码加密的方法有很多种,常用的包括MD5加密、SHA加密、AES加密、DES加密等,下面分别进行详细讲解。

1. MD5加密

MD5是哈希加密的一种,可以将任意长度的数据转换为固定长度的数据。Java提供了MessageDigest类来支持MD5加密,示例代码如下:

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

public class MD5Encryption {
    public static String encrypt(String password) {
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(password.getBytes());
            byte[] bytes = md.digest();
            StringBuilder sb = new StringBuilder();
            for (byte b : bytes) {
                sb.append(String.format("%02x", b));
            }
            return sb.toString();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return null;
    }
}

以上代码中,我们首先通过MessageDigest.getInstance("MD5")获取一个MessageDigest实例,然后使用update方法将需要加密的密码转换为字节数组,并调用digest方法获取加密后的字节数组。最后,我们将字节数组转换为十六进制字符串并返回。

2. SHA加密

SHA是与MD5类似的哈希加密算法,Java同样提供了MessageDigest类来支持SHA加密,示例代码如下:

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

public class SHAEncryption {
    public static String encrypt(String password) {
        try {
            MessageDigest md = MessageDigest.getInstance("SHA-256");
            md.update(password.getBytes());
            byte[] bytes = md.digest();
            StringBuilder sb = new StringBuilder();
            for (byte b : bytes) {
                sb.append(String.format("%02x", b));
            }
            return sb.toString();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return null;
    }
}

以上代码中,我们同样通过MessageDigest.getInstance("SHA-256")获取一个MessageDigest实例来支持SHA-256加密,其余步骤与MD5加密类似。

示例说明

我们通过以下示例来说明MD5和SHA的加密效果:

public class TestEncryption {
    public static void main(String[] args) {
        String password = "123456";
        System.out.println(MD5Encryption.encrypt(password)); // 输出:e10adc3949ba59abbe56e057f20f883e

        System.out.println(SHAEncryption.encrypt(password)); // 输出:e10adc3949ba59abbe56e057f20f883e86d1e529c176f9877fbaa2b879a6f9ef
    }
}

以上代码中,我们对字符串"123456"进行MD5和SHA加密,输出的结果分别为"e10adc3949ba59abbe56e057f20f883e"和"e10adc3949ba59abbe56e057f20f883e86d1e529c176f9877fbaa2b879a6f9ef",可以发现,SHA加密的结果更长且更复杂,更难被破解。

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

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

相关文章

  • 关于三种主流WEB架构的思考

    非常感谢您浏览我们网站上的“关于三种主流WEB架构的思考”这篇文章。在本文中,我们将围绕三种主流WEB架构(MVC、MVP、MVVM)进行详细的介绍和比较分析。 1. 介绍三种主流WEB架构 MVC MVC架构是由模型、视图和控制器三个核心组件构成的架构模式。它的主要思想是将业务逻辑、用户交互和数据模型分离开来,从而使代码更加整洁、结构更加清晰。 模型:负责…

    Java 2023年5月20日
    00
  • MyBatis注解开发之实现自定义映射关系和关联查询

    MyBatis注解开发之实现自定义映射关系和关联查询 什么是MyBatis注解? MyBatis是一款优秀的持久层框架,在开发过程中,我们需要使用XML来进行SQL的映射配置,这对于开发人员来说,可能存在一定的学习成本。 MyBatis注解是MyBatis框架提供的一种新的映射方式,它可以帮助我们在代码中轻松实现SQL映射配置,从而简化开发者的学习成本和开发…

    Java 2023年5月20日
    00
  • 详解Java使用JMH进行基准性能测试

    详解Java使用JMH进行基准性能测试 性能测试对于Java应用程序的开发和优化是至关重要的。在Java中,可以使用JMH框架进行严密的基准测试,以确保在实际生产环境中获得最高的性能和最小的延迟。 介绍JMH框架 JMH是一个专业级的基准测试框架,它可以提供准确的基准测试结果。它提供了多种的方式来测试不同的Java代码片段,包括方法调用、对象实例化、算法等。…

    Java 2023年5月26日
    00
  • Spring Boot编写拦截器教程实例解析

    下面是“Spring Boot编写拦截器教程实例解析”的完整攻略。 1. 什么是拦截器? 在 Spring Boot 中,拦截器(Interceptor)是一种 AOP(面向切面编程)技术,它可以在请求到达目标方法之前,或者在请求结束之后,实现相应的拦截操作。拦截器可以用来记录日志、验证用户权限、对请求参数进行处理等。 2. Spring Boot 中实现拦…

    Java 2023年5月31日
    00
  • Java各种比较对象的方式的对比总结

    Java是一门优秀的编程语言,它有多种比较对象的方式。在Java中,将两个对象进行比较是很常见的操作,常见的比较对象的方式包括了以下几种: 比较对象的方式 1. 使用“==”比较 在Java中,使用“==”比较两个对象时,比较的是两个对象的引用是否相同,即两个对象是否是同一个对象,如果引用不相同,则比较结果为false,反之则为true。 示例: Objec…

    Java 2023年5月26日
    00
  • java读取txt文件并输出结果

    下面是“Java读取txt文件并输出结果”的完整攻略: 1. 读取txt文件 1.1 创建File对象 首先,我们需要创建一个File对象,用来指定要读取的txt文件的路径及文件名。例如,读取名为example.txt的文件,代码如下: File file = new File("example.txt"); 1.2 创建FileRead…

    Java 2023年5月26日
    00
  • 详细学习Java Cookie技术(用户登录、浏览、访问权限)

    详细学习Java Cookie技术(用户登录、浏览、访问权限) 什么是Cookie Cookie是存储在用户本地计算机上的文本文件,它可以跨浏览器窗口和会话保留状态信息。在Java中,通过Cookie技术,我们可以实现用户登录、浏览历史管理等功能。Cookie是由服务器端发送到客户端,客户端再将它存储在本地,下次请求时再带上这个Cookie,服务器端就可以识…

    Java 2023年5月26日
    00
  • SpringBoot actuator 健康检查不通过的解决方案

    本次将详细讲解SpringBoot Actuator健康检查无法通过的解决方案。 什么是SpringBoot Actuator 健康检查? SpringBoot中的Actuator是一个管理和监控SpringBoot应用程序的工具集合。Actuator主要是提供了一组RESTful API,让我们可以对应用程序进行配置、管理与监控。 SpringBoot提供…

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