所以我为我,我的朋友和我的家人制作了一个小密码强度测试仪,如下所示:
import re
strength = ['You didnt type anything','Terrible','weak sause','avarage','Good!','Very Strong', 'THE FORCE IS STRONG WITH THIS ONE']
score = 1
password=(raw_input("please type in the password you would like rated:"))
if len(password) < 1:
print strength[0]
if len(password) >=1 and len(password)<=4:
print strength[1]
else:
print ""
if len(password) >=7:
score+=1
print "password was made stronger by not being short"
else:
print "Your password is really short, concider making it longer"
if len (password) >=10:
score+=1
print "password was made stronger by long"
else:
print "An even longer password would make it stronger"
if re.search('[a-z]',password) and re.search('[A-Z]', password):
score+=1
print "password was made stronger by having upper & lower case letters"
else:
print "Indlucing both upper and lower case letters will make your password stronger"
if re.search('[0-9]+', password):
score+=1
print "Password was made stronger by using numbers"
else:
print "Using numbers will make your password stronger"
if re.search('[.,!,@,#,$,%,^,&,*,?,_,~,-,£,(,)]',password):
score+=1
print "Password was made stronger by using punctuation marks and characters"
else:
print "Using punctuation marks and characters will make the password stronger"
print "\n final password rating is:"
print strength[score]
我希望做的是:
1st - 为我给用户的关于密码内容的评论添加颜色,好的评论如:"password was made stronger by using numbers"
将有绿色输出,而建设性反馈如{{1}将有一个红色输出,使用户更容易发现他的密码的利弊
第二 - 我想知道,如果它的工作方式相同,我可以在上面的“强度”列表中为某些项目着色吗?前两个是红色,中间对是黄色,最后一对是绿色吗?
TY!
答案 0 :(得分:3)
IDLE的控制台不支持ANSI转义序列,也不支持任何其他形式的转义,以便为输出着色。
你可以学习如何直接与IDLE的控制台对话,而不是像普通的stdout一样对它进行处理和打印(这就像对语法进行颜色编码一样),但这很复杂。 idle
文档只是告诉您使用IDLE本身的基础知识,而它的idlelib
库没有文档(好吧, 一行文档 - “(New in 2.3)IDLE开发环境的支持库。“ - 如果你知道在哪里找到它,但这不是很有用)。因此,您需要read the source,或者进行大量的试验和错误,甚至开始使用。
或者,您可以从命令行而不是IDLE运行脚本,在这种情况下,您可以使用终端处理的任何转义序列。大多数现代终端将至少处理基本的16/8色ANSI。许多将处理16/16,或扩展的xterm-256颜色序列,甚至完整的24位颜色。 (我相信gnome-terminal
是Ubuntu的默认设置,在默认配置中它会处理xterm-256,但这对SuperUser或AskUbuntu来说确实是一个问题。)
学习阅读termcap
条目以了解要输入哪些代码很复杂......但如果你只关心一个控制台 - 或者愿意只是假设“几乎一切都处理基本16/8色ANSI,以及任何不支持的,我不关心“,您可以忽略该部分,只需基于例如this page对其进行硬编码。
一旦你知道你要发射什么,只需要在打印之前将代码放入字符串中。
但是有些库可以让你更轻松。一个非常好的库,它是用Python内置的,curses
。这使您可以接管终端并执行全屏GUI,使用颜色和旋转光标以及您想要的任何其他内容。当然,它对于简单的用途来说有点重量。像往常一样,通过搜索PyPI可以找到其他库。
答案 1 :(得分:2)
答案 2 :(得分:-1)
最终决定使用CLINT作为一个伟大而聪明的人所给出的答案