<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 0, 文章 - 264, 評論 - 170, 引用 - 0
    數據加載中……

    java中使用MD5加密算法進行加密(注:轉載于http://school.cfan.com.cn/pro/java/2007-06-11/1181531460d67777.shtml)

    在各種應用系統的開發中,經常需要存儲用戶信息,很多地方都要存儲用戶密碼,而將用戶密碼直接存儲在服務器上顯然是不安全的,本文簡要介紹工作中常用的 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;
        }

    posted on 2010-12-28 11:10 小一敗涂地 閱讀(2668) 評論(0)  編輯  收藏 所屬分類: java語言相關

    主站蜘蛛池模板: 国产国拍精品亚洲AV片| 亚洲小说图区综合在线| 香蕉视频在线观看亚洲| 中文亚洲AV片不卡在线观看 | 久久精品成人免费看| 日韩精品无码免费专区午夜不卡| 一区二区三区视频免费| 一级毛片aa高清免费观看| 日本在线观看免费高清| jizz中国免费| 一个人免费视频观看在线www| 永久免费AV无码网站国产 | 亚洲区日韩精品中文字幕| 亚洲欧美日韩国产精品一区| 亚洲成a人无码亚洲成www牛牛| 亚洲av成人一区二区三区观看在线| 国产亚洲高清在线精品不卡| 黄网站色视频免费看无下截| 无码日韩人妻AV一区免费l| 国产亚洲精品免费视频播放| 欧洲人成在线免费| 99视频全部免费精品全部四虎| 在线成人a毛片免费播放| 伊人久久亚洲综合影院| 亚洲中文字幕无码永久在线| 亚洲an天堂an在线观看| 亚洲一级片在线观看| 亚洲精品无码成人| 一级毛片aaaaaa视频免费看| 91成人免费观看| 国产亚洲成AV人片在线观黄桃| 久久水蜜桃亚洲AV无码精品| 国产精品亚洲一区二区在线观看| 三级片免费观看久久| 最新亚洲成av人免费看| 很黄很黄的网站免费的| 日本不卡高清中文字幕免费| 亚洲中文字幕无码爆乳av中文| 亚洲综合视频在线| 亚洲欧洲AV无码专区| 一级日本高清视频免费观看|