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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

密码强度计算策略

發布時間:2024/8/1 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 密码强度计算策略 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 密碼強度計算策略
    • 1 基于密碼組合
    • 2 基于被破解時間
    • 3 基于信息熵

密碼強度計算策略

大學上課時,老師就提到千萬不要小看登錄、注冊模塊,設計起來也是會很復雜的。那時候編程剛入門沒體會,心想登錄、注冊不就幾個input,提交兩個表單就完事了嘛。哈哈哈,現在想起來真是年輕!后來慢慢知道了表單校驗、圖形驗證碼、郵箱驗證等等。

今天這個問題,同樣來自于看似簡單的注冊模塊,在注冊賬號設置密碼時,根據輸入的密碼顯示其安全系數。那么是怎么計算密碼強度?就來一起探索下這個規則大致都是這么設計的吧!

(這是一個圖片!)
首先說明,密碼的強度越高,代表的是越不容易被猜測攻擊給破解,而不能防止惡意程序或按鍵記錄器竊取。

1 基于密碼組合

組合規則很簡單也最常見,即要求密碼中至少包含4類字符中的3類,即:

  • 大寫字符[A-Z]
  • 小寫字符[a-z]
  • 數字[0-9]
  • 特殊字符:~!@#$%^&*_-+=`|(){}[]:;"’<>,.?/

由于之前做過一題oj,所以設計的時候最開始就想到了這個方法。題目是:牛客網——密碼強度等級(這個題目好像是來自于華為OJ,如果鏈接掛了可以直接百度題目)。

這種方式的優點就是較為簡單,代碼復雜度低,可以很容易的自定義得分計算規則,并且規則可以設置加分項和減分項。

但缺點也非常明顯,一是會降低用戶體驗,用戶輸入的密碼不能太簡單也不能太復雜,太簡單通不過規則,太過復雜難以記憶。如下圖lastpass(在線密碼管理器)注冊界面中主密碼輸入框:

二是隨著計算機運算能力的成倍提高,通過復雜的組合規則防止破解的作用也越來越小,且規則只會變得越來越復雜。

2 基于被破解時間

日常中我們見到的幾乎都是基于復雜規則進行計算密碼強度,且已習慣這種方式,甚至認為只要密碼足夠復雜,就足夠安全。但我們反過來想,要保證密碼安全,最主要是保證密碼不被破解不就行了!

zxcvbn便是基于密碼被破解時間計算密碼強度,名字的來源其實就是字母鍵區最底層從左至右5個字母。zxcvbn是github上擁有10k star的開源項目,使用方便,且幾乎支持所有開發語言(github地址)。

官方的介紹說得非常明白,這里就不一一翻譯原文了。大概意思是,zxcvbn通過結合模式匹配(即字典,字典包含有常用密碼、常用英文詞匯等)和估計被破解時間這兩種方式,來計算得到密碼強度。開發它的目的就是用來替代密碼組合規則的,相比之下zxcvbn更安全、靈活和好用。

在下一篇文章里,我將詳細介紹zxcvbn的具體使用。

3 基于信息熵

信息熵的思路與第二種方式相同,信息熵越大,越不容易被破解,則密碼的強度越高。

這個熵值指的是信息熵,由香農引入到信息論中,又被稱為香農熵,與熱力學的熵無關。大學學習壓縮算法時接觸到了信息熵這個概念,熵值是不確定性的量度,即熵值越大,不確定性就越高。

在密碼系統中,熵值計算公式為如下,其中K代表密鑰空間大小。
H(K)=log2KH(K) = log_2^K H(K)=log2K?
即密碼所在密鑰空間越大,熵值越高,密碼的不確定性越大,越不易被破解。

參考文獻:基于熵的密碼強度估計

github上發現的一個項目:A Password Strength Calculator Based On Shannon Entropy

總結

以上是生活随笔為你收集整理的密码强度计算策略的全部內容,希望文章能夠幫你解決所遇到的問題。

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