當柳上原的風吹向天際的時候...

          真正的快樂來源于創造

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            368 Posts :: 1 Stories :: 201 Comments :: 0 Trackbacks

          公告


          常用鏈接

          留言簿(3)

          最新隨筆

          積分與排名

          • 積分 - 393511
          • 排名 - 145

          最新評論

          閱讀排行榜

          按:以下還是炒冷飯,如果您對加鹽了解就不用往下看了,以免浪費寶貴時間。
          如果不了解下文部分細節的話,您可以參考這篇文章:使用MD5對存放在數據庫中用戶密碼進行保護


          直接對重要數據進行MD5處理后,反向解密確實難度很大,但還是可以找出破綻的,請看下圖:


          如果名為李自成的用戶可以查看數據庫,那么他可以觀察到自己的密碼和別人的密碼加密后的結果都是一樣,那么,別人用的和自己就是同一個密碼,這樣,就可以利用別人的身份登錄了。

          那么我們以前的加密方法是否對這種行為失效了呢?其實只要稍微混淆一下就能防范住了,這在加密術語中稱為“加鹽”。具體來說就是在原有材料(用戶自定義密碼)中加入其它成分(一般是用戶自有且不變的因素),以此來增加系統復雜度。當這種鹽和用戶密碼相結合后,再通過摘要處理,就能得到隱蔽性更強的摘要值。下面請見代碼:
          // 對密碼進行加鹽后加密,加密后再通過Hibernate往數據庫里存
                  String changedPswd=DigestUtils.md5Hex(name+pswd);

          就是這樣簡單,上面代碼中鹽就是用戶名,可以的話還可以用用戶注冊時的郵件,注冊時間等非空信息(如果是空信息這個加鹽處理會失效)。

          下面是數據庫中兩個用戶的記錄,他們的實際登錄密碼都是123456,但光看用戶記錄是完全看不出來的。這下別有用心的人打開數據庫看到的密碼都完全不一樣,他以前的手段就失效了。


          加鹽就是這樣簡單,感謝您看到這里。




          posted on 2010-11-28 09:53 何楊 閱讀(11811) 評論(6)  編輯  收藏

          Feedback

          # re: 對用戶密碼進行加鹽處理 2010-11-28 12:59 太龍
          剛知道這種方法叫做"加鹽"  回復  更多評論
            

          # re: 對用戶密碼進行加鹽處理 2010-12-07 11:52 i4kzhang
          學習了  回復  更多評論
            

          # re: 對用戶密碼進行加鹽處理[未登錄] 2013-10-13 10:41 zhao
          謝謝,學習了。。  回復  更多評論
            

          # re: 對用戶密碼進行加鹽處理[未登錄] 2014-08-29 17:18 123
          123  回復  更多評論
            

          # re: 對用戶密碼進行加鹽處理 2016-06-06 10:43 路人
          學習了,謝謝  回復  更多評論
            

          # re: 對用戶密碼進行加鹽處理 2016-07-12 15:56 路人
          老問題了,偶然間看到這個問題。為了不誤導別人希望提醒下后來者,加鹽不要用用戶名。用戶名同樣是可見的太容易逆推了,而且用戶名一變密碼就不行了。  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 丹巴县| 体育| 满洲里市| 宁国市| 阳朔县| 融水| 高要市| 保定市| 连江县| 惠州市| 循化| 乐都县| 黑山县| 嘉兴市| 兰考县| 梁平县| 禹州市| 正阳县| 荣成市| 赣榆县| 河西区| 车致| 岐山县| 剑阁县| 温州市| 新竹县| 保靖县| 长子县| 邓州市| 扎鲁特旗| 开阳县| 抚松县| 汉源县| 白山市| 岳池县| 福海县| 曲阳县| 平湖市| 武夷山市| 内江市| 江孜县|