Go 檢測密碼強度(密碼安全性)

2021-10-06 10:17:52 字數 1606 閱讀 8567

目錄

密碼強度

解決方案 **

**走讀

在涉及修改密碼的場景中,密碼強度(也稱密碼安全性)校驗是繞不開的話題。乙個密碼的安全性除了與密碼長度相關外,也與密碼所採用的字元種類有關。在不考慮密碼長度的情況下,密碼強度通常分為以下五類(由高到低排序):

密碼強度

說明示例

s密碼中必須存在特殊字元、大小寫字母和數字

csdn#2020

a對特殊字元、大寫字母、小寫字母和數字至少存在3種

csdn#2020

b對特殊字元、大寫字母、小寫字母和數字至少存在2種

csdn2020

c對特殊字元、大寫字母、小寫字母和數字至少存在1種

csdn

d不存在特殊字元、大小寫字母和數字。

/、\

檢測密碼強度包含兩個方面,乙個是密碼長度,另乙個是包含的字元種類。對不符合長度要求的密碼和字元種類範圍低的密碼報錯返回。

package check_pwd

import (

"fmt"

"regexp"

)const (

leveld = iota

levelc

levelb

levela

levels

)func check(minlength, maxlength, minlevel int, pwd string) error

if len(pwd) > maxlength

var level int = leveld

patternlist := string

for _, pattern := range patternlist

} if level < minlevel

return nil

}

package check_pwd

import (

"fmt"

"regexp"

)// 密碼強度等級,d為最低

const (

leveld = iota

levelc

levelb

levela

levels)/*

* minlength: 指定密碼的最小長度

* maxlength:指定密碼的最大長度

* minlevel:指定密碼最低要求的強度等級

* pwd:明文密碼

*/func check(minlength, maxlength, minlevel int, pwd string) error

if len(pwd) > maxlength

// 初始化密碼強度等級為d,利用正則校驗密碼強度,若匹配成功則強度自增1

var level int = leveld

patternlist := string

for _, pattern := range patternlist

}// 如果最終密碼強度低於要求的最低強度,返回並報錯

if level < minlevel

return nil

}

密碼安全性檢查

要求 安全級別低 密碼由單純數字或字母組成 密碼長度小於等於8位 安全級別中 密碼由數字,字母,特殊字元任意兩種組合,密碼長度不低於8位 安全級別高 密碼由數字,字母及特殊字元三種組合,開頭只能為字母。密碼長度不低於16位 str.isdigit 當字串只包含數字返回true str.isalpha...

密碼強度檢測 passwordStrength

我們設定密碼強度等級為10,製作一張表示每個等級狀態,給密碼框繫結keyup事件,通過keyup事件獲取密碼值,然後使用正則進行判斷密碼強度等級,然後變換相應的。使用很簡單。pass passwordstrength 建立如下html 請輸入密碼 type password id pass clas...

密碼演算法安全性列表

密碼演算法安全性列表 業界已知不安全演算法 對稱演算法 des在所有場景下都不安全。對稱演算法 3des在金鑰長度256以下,k1 k2 k3時不安全。對稱演算法 skipjack和rc2在所有場景下都不安全。對稱演算法 rc4和blowfish當金鑰長度128以下時,不安全。非對稱演算法 rsa在...