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

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

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

    posts - 35,  comments - 8,  trackbacks - 0

    J2SE在java.security.MessageDigest提供了一個(gè)MD5、SHA摘要計(jì)算類。
    結(jié)合javascript的md5計(jì)算,可以實(shí)現(xiàn)前臺(tái)口令加密,后臺(tái)數(shù)據(jù)庫(kù)中也保存的是md5或者sha的密碼加密摘要。

    具體實(shí)現(xiàn)如下:
    1、login.jsp部分
    ...
    <script type="text/javascript" src='js/md5.js'>

    </script>

    <html:form action="/login" focus="userid" >

    <table class="SubFormStyle">
       <tr align=left>
        <td><bean:message key="caption.LOGIN.UserID" /> <html:text
         property="userid" value=""></html:text></td>
        <td><bean:message key="caption.LOGIN.Password" /> <html:password
         property="passwordinput" value=""></html:password>
         <html:hidden
         property="password" value="" ></html:hidden></td>
        <td><html:submit onclick="password.value = hex_md5(passwordinput.value);">
         <bean:message key="button.Login" />
        </html:submit></td>

       </tr>
    </table>
    </html:form>
    ...

    2、我用的是struts,具體的action和form就不再浪費(fèi)紙張了,我定義了一個(gè)loginuser的類來(lái)進(jìn)行用戶密碼校驗(yàn),這里只給出校驗(yàn)的方法:
    /**
      *
      * 校驗(yàn)密碼,密碼采用MD5算法加密。
      *
      * @Param PasswordInput, 待校驗(yàn)密碼
      * @Return 校驗(yàn)通過(guò)返回true,否則返回false
      *
      *
      */
     public boolean CheckPassword(String PasswordInput) throws ATError {

      this.select();//從數(shù)據(jù)庫(kù)中讀取用戶信息
      MessageDigest md;
      try {
       //生成一個(gè)MD5加密計(jì)算摘要
       md = MessageDigest.getInstance("MD5");

       //計(jì)算md5函數(shù)
       md.update(this.password.getBytes());
       //digest()最后確定返回md5 hash值,返回值為8為字符串。因?yàn)閙d5 hash值是16位的hex值,實(shí)際上就是8位的字符
       //BigInteger函數(shù)則將8位的字符串轉(zhuǎn)換成16位hex值,用字符串來(lái)表示;得到字符串形式的hash值
       String pwd = new BigInteger(1, md.digest()).toString(16);
       
       if (PasswordInput.equals(pwd)) {
        return true;
       } else {
        return false;
       }
      } catch (NoSuchAlgorithmException e) {
      
       throw new ATError(e, "LoginUser", "CheckPassword", 1000);
      }

     }


    md5.js下載:http://pajhome.org.uk/crypt/md5/index.html

    posted on 2006-01-19 09:13 J2EE 閱讀(4287) 評(píng)論(3)  編輯  收藏

    FeedBack:
    # re: Java+MD5
    2006-01-19 11:13 | 音樂(lè)蟲子
    奇怪了,你怎么還需要在服務(wù)器那邊計(jì)算一次MD5的?
    WEB計(jì)算了MD5,數(shù)據(jù)庫(kù)保存的是密碼的MD5,服務(wù)器只要將數(shù)據(jù)庫(kù)的和WEB前端返回的比較一下就可以了呀?
      回復(fù)  更多評(píng)論
      
    # re: Java+MD5
    2006-01-19 15:11 | J2EE
    哈!!!
    一來(lái)這是一個(gè)測(cè)試性的代碼;二來(lái),我做測(cè)試的時(shí)候,數(shù)據(jù)庫(kù)里不是md5的摘要,而是明文。  回復(fù)  更多評(píng)論
      
    # re: Java+MD5
    2011-05-16 16:40 | yjk
    服務(wù)端的md5和客戶端的md5,中文下為什么不一致呢?  回復(fù)  更多評(píng)論
      

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     

    <2011年5月>
    24252627282930
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    常用鏈接

    留言簿(2)

    隨筆檔案

    文章檔案

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 自拍偷自拍亚洲精品播放| 美女扒开屁股让男人桶爽免费| 9久热这里只有精品免费| 四虎影视精品永久免费| 男女男精品网站免费观看 | 亚洲av无码兔费综合| 男女啪啪永久免费观看网站| 日本免费v片一二三区| 国产精品亚洲精品爽爽| 又粗又硬又大又爽免费视频播放| 国产AV无码专区亚洲精品| 可以免费观看的毛片| 一二三四在线观看免费高清中文在线观看 | 亚洲成a人片在线观看日本| 人妻免费一区二区三区最新| 24小时免费直播在线观看| 亚洲人成网站在线在线观看| 亚欧免费无码aⅴ在线观看| 免费a级毛片无码av| 亚洲日韩在线观看免费视频| 国产亚洲精久久久久久无码| 丰满亚洲大尺度无码无码专线 | 国产精品无码免费视频二三区| 国产精品亚洲а∨无码播放麻豆| 亚洲精品无码久久久久AV麻豆| 中文字幕免费在线观看动作大片 | 美女被免费网站91色| 亚洲国产天堂在线观看| 一级毛片完整版免费播放一区| 亚洲中文字幕无码永久在线| 国产精品亚洲专区无码牛牛| 精品国产人成亚洲区| 日韩国产精品亚洲а∨天堂免| 亚洲一级片内射网站在线观看| 久久久高清日本道免费观看| 亚洲日韩国产精品乱| 18禁美女黄网站色大片免费观看| 亚洲国产精品久久久久秋霞小| 亚洲色精品vr一区二区三区 | 亚洲 另类 无码 在线| 亚洲成年网站在线观看|