日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java中使用MD5进行计算摘要

發布時間:2024/9/5 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中使用MD5进行计算摘要 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java中使用MD5進行加密

??? 在各種應用系統的開發中,經常需要存儲用戶信息,很多地方都要存儲用戶密碼,而將用戶密碼直接存儲在服務器上顯然是不安全的,本文簡要介紹工作中常用的 MD5加密算法,希望能拋磚引玉。
(一)消息摘要簡介
一個消息摘要就是一個數據塊的數字指紋。即對一個任意長度的一個數據塊進行計算,產生一個唯一指印(對于SHA1是產生一個20字節的二進制數組)。消息摘要是一種與消息認證碼結合使用以確保消息完整性的技術。主要使用單向散列函數算法,可用于檢驗消息的完整性,和通過散列密碼直接以文本形式保存等,目前廣泛使用的算法有MD4、MD5、SHA-1。

消息摘要有兩個基本屬性:
  • 兩個不同的報文難以生成相同的摘要
  • 難以對指定的摘要生成一個報文,而可以由該報文反推算出該指定的摘要
  • 代表:美國國家標準技術研究所的SHA1和麻省理工學院Ronald Rivest提出的MD5

    (二)對字符串進行加密
    ????/**?*//**利用MD5進行加密
    ?????*?
    @param?str??待加密的字符串
    ?????*?
    @return??加密后的字符串
    ?????*?
    @throws?NoSuchAlgorithmException??沒有這種產生消息摘要的算法
    ?????*?
    @throws?UnsupportedEncodingException??
    ?????
    */

    ????
    public?String?EncoderByMd5(String?str)?throws?NoSuchAlgorithmException,?UnsupportedEncodingException...{
    ????????
    //確定計算方法
    ????????MessageDigest?md5=MessageDigest.getInstance("MD5");
    ????????BASE64Encoder?base64en?
    =?new?BASE64Encoder();
    ????????
    //加密后的字符串
    ????????String?newstr=base64en.encode(md5.digest(str.getBytes("utf-8")));
    ????????
    return?newstr;
    ????}
    調用函數:
    String str="0123456789"
    System.out.println(EncoderByMd5(str));
    輸出:eB5eJF1ptWaXm4bijSPyxw==
    (三)驗證密碼是否正確
    ??? 因為MD5是基于消息摘要原理的,消息摘要的基本特征就是很難根據摘要推算出消息報文,因此要驗證密碼是否正確,就必須對輸入密碼(消息報文)重新計算其摘要,和數據庫中存儲的摘要進行對比(即數據庫中存儲的其實為用戶密碼的摘要),若兩個摘要相同,則說明密碼正確,不同,則說明密碼錯誤。
    ????/**?*//**判斷用戶密碼是否正確
    ?????*?
    @param?newpasswd??用戶輸入的密碼
    ?????*?
    @param?oldpasswd??數據庫中存儲的密碼--用戶密碼的摘要
    ?????*?
    @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;
    ????}

    參考資料
    java上加密算法的實現用例
    java加密和數字簽名編程快速入門

    轉載于:https://www.cnblogs.com/hehe520/archive/2006/10/08/6330289.html

    總結

    以上是生活随笔為你收集整理的java中使用MD5进行计算摘要的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。