马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 heidern0612 于 2018-12-17 09:50 编辑
写的内容都是自我思考的过程,难免有疏漏,有错误的地方欢迎广大鱼油给予指正!
1、字符串。
老师给讲了个有趣的例子,利用字符串隐藏密码,挺好玩的。如果字符串长一些,步进长一些,全篇再都是字母的话,能做出来密码的效果。
2、密码安全性检查。
我分析下小甲鱼老师的思路,就不做多解释了,基本大家都能看懂。
1、先做特征库。
2、立2个flag ,一个flag用来检查密码长度,一个flag用来检查是否在特征库内。
3、两个flag值都最低的时候,判断密码等级低,两个flag最高的时候,判定密码等级高,剩余的就是中。
4、字符串必须字母开头,可以用str[0]进行判断。
自我思考,对于这种小型的工程,最好是先想好怎么做,再下手,可以学老师的思维图。
我做这种题主要的判定就是何时while有效,何时while无效。虽然达不到老师那样的标准,但是我觉得我这么想应该方向是对的。
我是如下想的:
1、判断长度,立flag,1到3等级;
2、组合判断,立flag,1到3等级;
3、判断首字母,立flag,0到1等级。
4、 如果三个flag相加达到7,级别最高;
如果三个flag相加小于4,级别最低;
else: 级别中。
贴上自己的代码:
#coding=gbk
guess = input('请输入你的密码:')
strnum = '0123456789'
str_zimu='qwertyuiopasdfghjklzxcvbnmQWERTYUIOP@ASDFGHJKLZXCVBNM'
str_sym =r'''!#
"%&()=~|{}`*+?><,./'''
x = 0
#长度判断
if len(guess) <= 8:
x = 1
if 16 > len(guess) > 8:
x = 2
if len(guess) > 16:
x = 3
#组合判断
y = 0
for i in guess:
if i in strnum:
y = 1
break
for i in guess:
if i in str_zimu:
y += 1
break
for i in guess:
if i in str_sym:
y += 1
break
#字母判断
z = 0
if guess[0].isalpha():
z = 1
# flag相加判断
if x+y+z == 7:
print('您的密码',guess,'安全系数最高')
elif x + y+z < 4:
print('您的密码', guess, '安全系数最低,建议增加难度')
else:
print('您的密码', guess, '安全系数一般,建议增加难度')
|