shell检查密码强度

Posted 雅冰石

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell检查密码强度相关的知识,希望对你有一定的参考价值。

需求:检查检查密码是否包含大写、小写、数字、特殊字符和密码长度8。

#!/bin/bash
#检查检查密码是否包含大写、小写、数字、特殊字符和密码长度。
for passwd in `cat frepwd.txt`
do
  #echo $passwd
  strlen=`echo $passwd | grep -E --color '^(.8,).*$'`
  #密码长度是否8位以上(包含8位)
  strlow=`echo $passwd | grep -E --color '^(.*[a-z]+).*$'`
  #密码是否有小写字母
  strupp=`echo $passwd | grep -E --color '^(.*[A-Z]).*$'`
  #密码是否有大写字母
  strts=`echo $passwd | grep -E --color '^(.*\\W).*$'`
  #密码是否有特殊字符
  strnum=`echo $passwd | grep -E --color '^(.*[0-9]).*$'`
  #密码是否有数字
  #-n 判断字符不为空 返回真
 if [ -n "$strlen" ] && [ -n "$strlow" ] && [ -n "$strupp" ] && [ -n "$strts" ]  && [ -n "$strnum" ] 
  then
     echo $passwd >> newfrepwd.log
  else  
     echo $passwd >> nofrepwd.log
  fi
done

--有一个需求,在执行脚本传参的时候检查下密码复杂度(这里只检查长度,大小写字母,数字,不检查特殊字符),于是在上面的基础上做了如下修改:

#本脚本的目的用于判断传的参数是否满足密码复杂度(长度8位以上,同时包含大小写字母,数字)
password=$(echo $1)
RED_COLOR='\\E[1;31m'
GREEN_COLOR='\\E[1;32m'
RES='\\E[0m'

#判断是否传入了一个参数
if [[ $password  = "" ]]
then
    echo -e "$RED_COLOR请在调用该脚本时传入一个密码参数,需要满足密码复杂度(长度8位以上,同时包含大小写字母,数字).$RES"
    exit
else
    #判断传入的参数的复杂度
    #密码长度是否8位以上(包含8位)
    strlen=`echo $password | grep -E --color '^(.8,).*$'`
  
    #密码是否有小写字母
    strlow=`echo $password | grep -E --color '^(.*[a-z]+).*$'`
  
    #密码是否有大写字母
    strupp=`echo $password | grep -E --color '^(.*[A-Z]).*$'`
  
    #密码是否有数字
    strnum=`echo $password | grep -E --color '^(.*[0-9]).*$'`
  
    #-n 判断字符不为空 返回真
    if [ -n "$strlen" ] && [ -n "$strlow" ] && [ -n "$strupp" ] && [ -n "$strnum" ] 
    then
       echo -e "$GREEN_COLOR恭喜,您传入的参数满足密码复杂度.$RES"
    else  
       echo -e "$RED_COLOR您传入的参数不满足密码复杂度,退出,请重新传参.$RES"
       exit
    fi
    echo 'continue...'
fi

--本篇文章转自:
https://www.jianshu.com/p/6c34cb6b2b73
 

以上是关于shell检查密码强度的主要内容,如果未能解决你的问题,请参考以下文章

shell检查密码强度

Python练习题9(密码判断):请写一个密码安全性检查的代码代码: 首先判断密码的强度,如果结果是低或中则打印如何提升密码安全级别的提示,而高则直接退出

密码强度正则表达式 – 必须包含大写字母,小写字母和数字,至少8个字符等

如何使用 Angular 5 验证器模式验证密码强度

Python小实验——密码强度

密码强度正则表达式 – 必须包含大写字母,小写字母和数字,至少8个字符等