欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java加密MD5實(shí)現(xiàn)及密碼驗(yàn)證代碼實(shí)例

 更新時間:2019年12月09日 10:09:59   作者:云中志  
這篇文章主要介紹了java加密MD5實(shí)現(xiàn)及密碼驗(yàn)證代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

這篇文章主要介紹了java加密MD5實(shí)現(xiàn)及密碼驗(yàn)證代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

MD5算法具有以下特點(diǎn):

1、壓縮性:任意長度的數(shù)據(jù),算出的MD5值長度都是固定的。

2、容易計(jì)算:從原數(shù)據(jù)計(jì)算出MD5值很容易。

3、抗修改性:對原數(shù)據(jù)進(jìn)行任何改動,哪怕只修改1個字節(jié),所得到的MD5值都有很大區(qū)別。

4、強(qiáng)抗碰撞:已知原數(shù)據(jù)和其MD5值,想找到一個具有相同MD5值的數(shù)據(jù)(即偽造數(shù)據(jù))是非常困難的。

MD5的作用是讓大容量信息在用數(shù)字簽名軟件簽署私人密鑰前被"壓縮"成一種保密的格式(就是把一個任意長度的字節(jié)串變換成一定長的十六進(jìn)制數(shù)字串)。除了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();
  }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解mybatis #{}和${}的區(qū)別、傳參、基本語法

    詳解mybatis #{}和${}的區(qū)別、傳參、基本語法

    這篇文章主要介紹了mybatis #{}和${}的區(qū)別、傳參、基本語法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • Java中的ThreadLocal詳解

    Java中的ThreadLocal詳解

    這篇文章主要介紹了Java中的ThreadLocal詳解,ThreadLocal?是一個線程局部變量,其實(shí)的功用非常簡單,就是為每一個使用該變量的線程都提供一個變量值的副本,是Java中一種較為特殊的線程綁定機(jī)制,需要的朋友可以參考下
    2023-09-09
  • Spring?@Bean注解深入分析源碼執(zhí)行過程

    Spring?@Bean注解深入分析源碼執(zhí)行過程

    隨著SpringBoot的流行,我們現(xiàn)在更多采用基于注解式的配置從而替換掉了基于XML的配置,所以本篇文章我們主要探討基于注解的@Bean以及和其他注解的使用
    2023-01-01
  • Spring Boot讀取配置屬性常用方法解析

    Spring Boot讀取配置屬性常用方法解析

    這篇文章主要介紹了Spring Boot讀取配置屬性常用方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • Spring boot GC實(shí)現(xiàn)過程原理解析

    Spring boot GC實(shí)現(xiàn)過程原理解析

    這篇文章主要介紹了Spring boot GC實(shí)現(xiàn)過程原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • 詳解springmvc如何處理接受http請求

    詳解springmvc如何處理接受http請求

    這篇文章主要給大家介紹了springmvc如何處理接受http請求,文中通過代碼示例給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-02-02
  • 利用java監(jiān)聽器實(shí)現(xiàn)在線人數(shù)統(tǒng)計(jì)

    利用java監(jiān)聽器實(shí)現(xiàn)在線人數(shù)統(tǒng)計(jì)

    過去使用ASP和ASP.NET兩種編程的時候,都寫過在線人數(shù)統(tǒng)計(jì)能,實(shí)現(xiàn)功能挺簡單的!今天使用java來實(shí)現(xiàn)在線人數(shù)統(tǒng)計(jì)有點(diǎn)另類,是通過Java監(jiān)聽器實(shí)現(xiàn)的,需要的朋友可以參考下
    2015-09-09
  • 解決JAVA8 Collectors.toMap value為null報(bào)錯的問題

    解決JAVA8 Collectors.toMap value為null報(bào)錯的問題

    這篇文章主要介紹了解決JAVA8 Collectors.toMap value為null報(bào)錯的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Spring示例講解條件注入方法

    Spring示例講解條件注入方法

    Spring支持按照條件來注入某些特定的bean,這也是Spring Boot實(shí)現(xiàn)自動化配置的底層方法,文中的示例代碼講解詳細(xì),需要的可以參考一下
    2022-06-06
  • Windows7下的Java運(yùn)行環(huán)境搭建過程圖解

    Windows7下的Java運(yùn)行環(huán)境搭建過程圖解

    這篇文章主要介紹了Windows7下的Java運(yùn)行環(huán)境搭建過程圖解,需要的朋友可以參考下
    2014-04-04

最新評論