java加密MD5实现及密码验证代码实例

 更新时间:2019年12月09日 10:09:59   作者:云中志  
这篇文章主要介绍了java加密MD5实现及密码验证代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

这篇文章主要介绍了java加密MD5实现及密码验证代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

MD5算法具有以下特点:

1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。

2、容易计算:从原数据计算出MD5值很容易。

3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。

4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。

MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。除了MD5以外,其中比较有名的还有sha-1、RIPEMD以及Haval等。

package test;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

import org.junit.Test;

public class Teste {
  @Test
  public void testMd5() {
    System.out.println(encrypt("1234567"));
  }
  
  @Test
  public void testlogin() {
    String password = encrypt("123456adfaf");
    if(encrypt("123456adfaf").equals(password)) {
      System.out.println("密码正确");
    } else {
      System.out.println("密码错误");
    }
  }
  
  private String encrypt(String password) {
    String passwordMd5 = null;
    try {
      MessageDigest md5 = MessageDigest.getInstance("MD5");
      byte[] bytes = md5.digest(password.getBytes("utf-8"));
      passwordMd5 = toHex(bytes);
    } catch (NoSuchAlgorithmException | UnsupportedEncodingException e) {
      e.printStackTrace();
    }
    return passwordMd5;
  }
  
  private static String toHex(byte[] bytes) {

    final char[] HEX_DIGITS = "0123456789ABCDEF".toCharArray();
    StringBuilder ret = new StringBuilder(bytes.length * 2);
    for (int i=0; i<bytes.length; i++) {
      ret.append(HEX_DIGITS[(bytes[i] >> 4) & 0x0f]);
      ret.append(HEX_DIGITS[bytes[i] & 0x0f]);
    }
    return ret.toString();
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • java IO 文件操作方法总结

    java IO 文件操作方法总结

    这篇文章主要介绍了java IO 文件操作方法总结的相关资料,需要的朋友可以参考下
    2017-04-04
  • springboot实现mock平台的示例代码

    springboot实现mock平台的示例代码

    本文主要介绍了springboot实现mock平台的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • Java实现扫雷游戏详细代码讲解

    Java实现扫雷游戏详细代码讲解

    windows自带的游戏《扫雷》是陪伴了无数人的经典游戏,本文将利用Java语言实现这一经典的游戏,文中的示例代码讲解详细,感兴趣的可以学习一下
    2022-05-05
  • java实现水仙花数的计算

    java实现水仙花数的计算

    这篇文章主要为大家详细介绍了java实现水仙花数的计算,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • java编程小白进阶包的作用详解

    java编程小白进阶包的作用详解

    这篇文章主要为大家介绍了java编程中包的作用详解,文中通过示例分析方便大家更容易理解包的作用,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-10-10
  • SpringBoot校园综合管理系统实现流程分步讲解

    SpringBoot校园综合管理系统实现流程分步讲解

    这篇文章主要介绍了SpringBoot+Vue实现校园综合管理系统流程分步讲解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-09-09
  • Spring Bean属性注入的两种方式详解

    Spring Bean属性注入的两种方式详解

    Spring 属性注入(DI依赖注入)有两种方式:setter注入,构造器注入。本文将详细为大家介绍一下这两种方式的具体用法,感兴趣的可以了解一下
    2022-06-06
  • Java实现二分查找BinarySearch算法

    Java实现二分查找BinarySearch算法

    这篇文章主要介绍了Java实现二分查找BinarySearch算法,二分查找针对的是一个有序的数据集合,每次都通过跟区间的中间元素对比,将待查找的区间缩小为之前的一半,直到找到要查找的元素,或者区间被缩小为 0,需要的朋友可以参考下
    2023-12-12
  • java后端调用第三方接口返回图片流给前端的具体代码实现

    java后端调用第三方接口返回图片流给前端的具体代码实现

    在前后端分离的开发中,经常会遇到需要从后端返回图片流给前端的情况,下面这篇文章主要给大家介绍了关于java后端调用第三方接口返回图片流给前端的具体代码实现,需要的朋友可以参考下
    2024-02-02
  • 深入了解Java.Util.Date详情

    深入了解Java.Util.Date详情

    这篇文章主要介绍了Java.Util.Date,很少有类能像java.util.Date那样在堆栈溢出方面引起如此多的类似问题,关于具体原因下文内容详细介绍,需要的朋友可以参考一下
    2022-06-06

最新评论