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检查密码强度的主要内容,如果未能解决你的问题,请参考以下文章
Python练习题9(密码判断):请写一个密码安全性检查的代码代码: 首先判断密码的强度,如果结果是低或中则打印如何提升密码安全级别的提示,而高则直接退出