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

java中如何使用MD5進(jìn)行加密

 更新時(shí)間:2016年11月02日 09:33:46   作者:宋七公子  
這篇文章主要介紹了java實(shí)現(xiàn)md5加密示例,在各種應(yīng)用系統(tǒng)的開(kāi)發(fā)中,經(jīng)常需要存儲(chǔ)用戶信息,很多地方都要存儲(chǔ)用戶密碼,有需要的小伙伴可以參考下。

在各種應(yīng)用系統(tǒng)的開(kāi)發(fā)中,經(jīng)常需要存儲(chǔ)用戶信息,很多地方都要存儲(chǔ)用戶密碼,而將用戶密碼直接存儲(chǔ)在服務(wù)器上顯然是不安全的,本文簡(jiǎn)要介紹工作中常用的 MD5加密算法,希望能拋磚引玉。

(一)消息摘要簡(jiǎn)介

一個(gè)消息摘要就是一個(gè)數(shù)據(jù)塊的數(shù)字指紋。即對(duì)一個(gè)任意長(zhǎng)度的一個(gè)數(shù)據(jù)塊進(jìn)行計(jì)算,產(chǎn)生一個(gè)唯一指?。▽?duì)于SHA1是產(chǎn)生一個(gè)20字節(jié)的二進(jìn)制數(shù)組)。消息摘要是一種與消息認(rèn)證碼結(jié)合使用以確保消息完整性的技術(shù)。主要使用單向散列函數(shù)算法,可用于檢驗(yàn)消息的完整性,和通過(guò)散列密碼直接以文本形式保存等,目前廣泛使用的算法有MD4、MD5、SHA-1。

消息摘要有兩個(gè)基本屬性:

兩個(gè)不同的報(bào)文難以生成相同的摘要

難以對(duì)指定的摘要生成一個(gè)報(bào)文,而可以由該報(bào)文反推算出該指定的摘要

代表:美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)研究所的SHA1和麻省理工學(xué)院Ronald Rivest提出的MD5

(二)對(duì)字符串進(jìn)行加密
 

/**利用MD5進(jìn)行加密
   * @param str 待加密的字符串
   * @return 加密后的字符串
   * @throws NoSuchAlgorithmException 沒(méi)有這種產(chǎn)生消息摘要的算法
   * @throws UnsupportedEncodingException 
   */
  public String EncoderByMd5(String str) throws NoSuchAlgorithmException, UnsupportedEncodingException{
    //確定計(jì)算方法
    MessageDigest md5=MessageDigest.getInstance("MD5");
    BASE64Encoder base64en = new BASE64Encoder();
    //加密后的字符串
    String newstr=base64en.encode(md5.digest(str.getBytes("utf-8")));
    return newstr;
  }

調(diào)用函數(shù):

String str="0123456789"
System.out.println(EncoderByMd5(str));

輸出:eB5eJF1ptWaXm4bijSPyxw==

(三)驗(yàn)證密碼是否正確

因?yàn)镸D5是基于消息摘要原理的,消息摘要的基本特征就是很難根據(jù)摘要推算出消息報(bào)文,因此要驗(yàn)證密碼是否正確,就必須對(duì)輸入密碼(消息報(bào)文)重新計(jì)算其摘要,和數(shù)據(jù)庫(kù)中存儲(chǔ)的摘要進(jìn)行對(duì)比(即數(shù)據(jù)庫(kù)中存儲(chǔ)的其實(shí)為用戶密碼的摘要),若兩個(gè)摘要相同,則說(shuō)明密碼正確,不同,則說(shuō)明密碼錯(cuò)誤。

/**判斷用戶密碼是否正確
   * @param newpasswd 用戶輸入的密碼
   * @param oldpasswd 數(shù)據(jù)庫(kù)中存儲(chǔ)的密碼--用戶密碼的摘要
   * @return
   * @throws NoSuchAlgorithmException
   * @throws UnsupportedEncodingException
   */
  public boolean checkpassword(String newpasswd,String oldpasswd) throws NoSuchAlgorithmException, UnsupportedEncodingException{
    if(EncoderByMd5(newpasswd).equals(oldpasswd))
      return true;
    else
      return false;
  }

PS:關(guān)于加密技術(shù),本站還提供了如下加密工具供大家參考使用:

MD5在線加密工具:http://tools.jb51.net/password/CreateMD5Password

Escape加密/解密工具:http://tools.jb51.net/password/escapepwd

在線SHA1加密工具:http://tools.jb51.net/password/sha1encode

短鏈(短網(wǎng)址)在線生成工具:http://tools.jb51.net/password/dwzcreate

短鏈(短網(wǎng)址)在線還原工具:http://tools.jb51.net/password/unshorturl

高強(qiáng)度密碼生成器:http://tools.jb51.net/password/CreateStrongPassword

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

相關(guān)文章

  • HDFS中JAVA API的使用

    HDFS中JAVA API的使用

    HDFS是一個(gè)分布式文件系統(tǒng),既然是文件系統(tǒng),就可以對(duì)其文件進(jìn)行操作,比如說(shuō)新建文件、刪除文件、讀取文件內(nèi)容等操作。下面記錄一下使用JAVA API對(duì)HDFS中的文件進(jìn)行操作的過(guò)程
    2017-07-07
  • Java List簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java List簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java中可變數(shù)組的原理就是不斷的創(chuàng)建新的數(shù)組,將原數(shù)組加到新的數(shù)組中,下文對(duì)Java List用法做了詳解。需要的朋友參考下吧
    2017-05-05
  • java獲取系統(tǒng)路徑字體、得到某個(gè)目錄下的所有文件名、獲取當(dāng)前路徑

    java獲取系統(tǒng)路徑字體、得到某個(gè)目錄下的所有文件名、獲取當(dāng)前路徑

    這篇文章主要介紹了java獲取系統(tǒng)路徑字體、得到某個(gè)目錄下的所有文件名、獲取當(dāng)前路徑,需要的朋友可以參考下
    2014-04-04
  • Spring Boot中防止遞歸查詢的兩種方式

    Spring Boot中防止遞歸查詢的兩種方式

    這篇文章主要給大家介紹了關(guān)于Spring Boot中防止遞歸查詢的兩種方式,兩種方式分別是在application.properties中配置和在entity中添加注解,都給出了詳細(xì)的示例代碼,需要的朋友們下面來(lái)一起看看吧。
    2017-06-06
  • 詳解SpringCloud Ribbon 負(fù)載均衡通過(guò)服務(wù)器名無(wú)法連接的神坑

    詳解SpringCloud Ribbon 負(fù)載均衡通過(guò)服務(wù)器名無(wú)法連接的神坑

    這篇文章主要介紹了詳解SpringCloud Ribbon 負(fù)載均衡通過(guò)服務(wù)器名無(wú)法連接的神坑,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • 有關(guān)IntelliJ IDEA中LeetCode插件配置問(wèn)題

    有關(guān)IntelliJ IDEA中LeetCode插件配置問(wèn)題

    這篇文章主要介紹了關(guān)于IntelliJ IDEA中LeetCode插件配置問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • SpringBoot整合微信小程序支付V3(支付退款)

    SpringBoot整合微信小程序支付V3(支付退款)

    小程序支付在很多項(xiàng)目都會(huì)使用,本文主要介紹了SpringBoot整合微信小程序支付V3,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • Java 隨機(jī)取字符串的工具類(lèi)

    Java 隨機(jī)取字符串的工具類(lèi)

    隨機(jī)數(shù)在實(shí)際中使用很廣泛,比如要隨即生成一個(gè)固定長(zhǎng)度的字符串、數(shù)字?;蛘唠S即生成一個(gè)不定長(zhǎng)度的數(shù)字、或者進(jìn)行一個(gè)模擬的隨機(jī)選擇等等。Java提供了最基本的工具,可以幫助開(kāi)發(fā)者來(lái)實(shí)現(xiàn)這一切
    2014-01-01
  • java實(shí)現(xiàn)解析json復(fù)雜數(shù)據(jù)的第三種思路詳解

    java實(shí)現(xiàn)解析json復(fù)雜數(shù)據(jù)的第三種思路詳解

    這篇文章主要為大家信息介紹了java實(shí)現(xiàn)解析json復(fù)雜數(shù)據(jù)的第三種思路,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • maven 環(huán)境變量的配置詳解

    maven 環(huán)境變量的配置詳解

    這篇文章主要介紹了maven 環(huán)境變量的配置詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09

最新評(píng)論