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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

基于哈希算法的web账户口令存储方法

發布時間:2025/3/20 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于哈希算法的web账户口令存储方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  web賬戶的口令不能直接明文存儲,這樣太不安全了,需要加密存儲。

  • 存儲策略—— 基于安全哈希算法加密存儲用戶的口令
  •   估計基于安全哈希算法的存儲方式應該已經廣泛使用了,不過奇怪的是網上難以找到相關應用的詳細資料。哈希算法可用于保障信息的完整性、抗抵賴性, 屬于單向算法,即便哈希的結果被截獲,對方也是無法還原出明文的。如果在哈希的過程中加入鹽值,那就更好了,可以起到混淆的作用。鹽值這個概念找不到定義,大概是指用戶間相互不同的信息,常見的用戶名、用戶郵箱、賬號注冊時間等。

      類似地,選擇基于哈希的消息認證碼(HMAC)也可用于身份認證,安全性更強,如果各位對單純的hash不放心,可以使用HMAC。

      也有資料提到通過非對稱加密算法加密后存儲,比如RSA,個人覺得這種方法的安全性不如哈希算法,使用起來也麻煩,需考慮系統后臺的密鑰管理,而一旦密鑰泄露,所以信息也就都白加密了。

      2. 算法的選擇

      哈希算法有很多,常見的有MD5和SHA系列?,F在有個叫彩虹表的東西,窮舉某個哈希值所對應的明文,導致了MD5和SHA-1已經不再安全。而SHA-256或SHA-512目前還是比較安全的,而且計算消耗的資源不會比MD5或SHA-1差太多。從代碼實現的角度考慮,各算法的參數都一樣,返回值類型也一樣,只是函數名和返回值長度變了,所以如果已使用了MD5或SHA-1,可很方便地切換到更安全的算法上。

       3. 添加鹽值

      以鹽值為用戶名,算法為SHA-256為例,用戶最終存儲在后臺的口令就可以為SHA256(" 用戶名+口令 " )。而登陸的時候,有兩種驗證策略:

    • 可在客戶端計算出SHA256("輸入的用戶名+輸入的口令"),將計算的結果明文傳輸給服務端,由服務端比較該值與后臺數據庫中存儲的是否相同。
    • 將輸入的用戶名,口令加密傳輸到服務端,在服務端計算 SHA256("輸入的用戶名+輸入的口令"),再與數據庫存儲的內容做比較。加密傳輸現在比較流行的方法是HTTPS,這里就不多說了。

      可以看到,服務端是不知道用戶的口令明文是什么,所以即便數據庫攻破,也不會泄露用戶的口令。

      再說說添加鹽值的好處。大家都知道,最常見的口令是123456,假設有100個用戶都這么設置了,那么如果不加鹽值,這100個用戶后臺加密存儲的口令就一摸一樣了,這就是一個安全隱患。加了鹽值還可以增加彩虹表碰撞的難度,就算用戶使用了最簡單的口令,加了鹽值后也還是難以破解的。

      鹽值最好選擇用戶注冊后,就不會再改變的信息,或是由這些信息計算后的另一個值。比如,如果鹽值設置成了用戶郵箱,那就要確保這個郵箱不能修改,否則一旦郵箱改了,HASH("新郵箱+口令")≠ HASH("舊郵箱+口令") ,從而用戶改了郵箱就不能再登錄了。

    轉載于:https://www.cnblogs.com/todsong/archive/2012/04/22/2465178.html

    總結

    以上是生活随笔為你收集整理的基于哈希算法的web账户口令存储方法的全部內容,希望文章能夠幫你解決所遇到的問題。

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