設定乙個複雜的密碼,可以有效的提公升系統的安全性。在linux上有pam(pluggable authentication modules)裡面有乙個pam_cracklib.so來控制密碼的複雜度。
centos / rhel / redhat / fedora : /etc/pam.d/system-auth
pam_cracklib.so中有很多引數可以選擇,具體配置如下:
debug : 此選為記錄syslog日誌。
type=safe : 輸入新密碼的時候給予的提示。
retry=n : 改變輸入密碼的次數,預設值是1。就是說,如果使用者輸入的密碼強度不夠就退出。可以使用這個選項設定輸入的次數,以免一切都從頭再來。
difok=n : 預設值為8。這個引數設定允許的新、舊密碼相同字元的個數。
difignore=n : 多少個字元的密碼應收到difok將被忽略。預設為23
minlen=n : 新的最低可接受的大小密碼。除了在新密碼的字元數。此引數的預設值是9,它是乙個老式的unix密碼的字元相同型別的所有好,但可能過低,利用乙個md5的系統增加安全性。
dcredit=n : 限制新密碼中至少有多少個數字。
ucredit=n : 限制新密碼中至少有多少個大寫字元。
lcredit=n : 限制新密碼中至少有多少個小寫字元。
ocredit=n : 限制新密碼中至少有多少個其它的字元。此引數用於強制模組不提示使用者的新密碼,但以前使用的堆疊模組提供的密碼之一。
dictpath=/data/dict :密碼字典,這個是驗證使用者的密碼是否是字典一部分的關鍵
cracklib密碼強度檢測過程:
1、首先檢查密碼是否是字典的一部分,如果不是,則進行下面的檢查
2、密碼強度檢測過程
3、新密碼是否舊密碼的回文
4、新密碼是否只是就密碼改變了大小寫
5、新密碼是否和舊密碼很相似
6、新密碼是否太短
7、新密碼的字元是否是舊密碼字元的乙個迴圈 例如舊密碼:123 新密碼:231
8、這個密碼以前是否使用過。
例子password required pam_cracklib.so difok=3 minlen=15 dcredit=2 ocredit=2
允許有3個新、舊密碼相同字元的、最小長度15位 和至少包含2數字、至少包含2個特殊字元數
password required pam_cracklib.so dcredit=-1 ucredit=-1 ocredit=-1 lcredit=0 minlen=8 enforce_for_root
最小長度為8和至少1位數字,1位大寫字母,和另外1個字元的密碼,此設定對root生效
linux下設定密碼複雜度限制,怎麼設定
在linux,設定密碼複雜度的方法有幾個 1.乙個是在 etc login.defs檔案,裡面幾個選項 pass max days 90 密碼最長過期天數 pass min days 80 密碼最小過期天數 pass min len 10 密碼最小長度 pass warn age 7 密碼過期警告天...
python驗證密碼複雜度 密碼複雜度檢測演算法
密碼規則 可以輸入數字和字母 大寫 小寫 組合,長度6 10位 字串複雜度計算流程 1.計算字元種類數量 字元種類有數字 大寫字母 小寫字母 2.計算字元差異數量 區分大寫字母和小寫字母,重複的字元不計算在內 3.根據字元種類數量和字元差異數量計算複雜度 下面是偽 var level 1 簡單 2 ...
MYSQL設定密碼複雜度
mysql5.6.6版本之後增加了密碼強度驗證外掛程式validate password,相關引數設定的較為嚴格。使用了該外掛程式會檢查設定的密碼是否符合當前設定的強度規則,若不滿足則拒絕設定。在 mysql安裝目錄中,mysql server 8.0 lib plugin 可以看到預設存在vali...