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

          真正的快樂來源于創造

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            368 Posts :: 1 Stories :: 201 Comments :: 0 Trackbacks
          按:以下還是炒冷飯,如果您對加鹽了解就不用往下看了,以免浪費寶貴時間。
          如果不了解下文部分細節的話,您可以參考這篇文章:使用MD5對存放在數據庫中用戶密碼進行保護


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


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

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

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

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


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




          posted on 2010-11-28 09:53 何楊 閱讀(11812) 評論(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 路人
          老問題了,偶然間看到這個問題。為了不誤導別人希望提醒下后來者,加鹽不要用用戶名。用戶名同樣是可見的太容易逆推了,而且用戶名一變密碼就不行了。  回復  更多評論
            


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


          網站導航:
           
          主站蜘蛛池模板: 沾益县| 山东省| 卢湾区| 家居| 宁夏| 合水县| 兴宁市| 抚远县| 博罗县| 吴旗县| 鄯善县| 铜鼓县| 信阳市| 洛扎县| 太谷县| 平阳县| 溧水县| 浦东新区| 凤阳县| 富裕县| 新河县| 东乡族自治县| 呈贡县| 双牌县| 分宜县| 西乌珠穆沁旗| 怀远县| 罗城| 邵东县| 肥乡县| 松潘县| 安丘市| 庆元县| 大英县| 承德市| 南安市| 湖南省| 汶上县| 马山县| 宝兴县| 都江堰市|