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

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

# 密码安全性检查代码
#
# 低级密码要求:
# 1. 密码由单纯的数字或字母组成
# 2. 密码长度小于等于8位
#
# 中级密码要求:
# 1. 密码必须由数字、字母或特殊字符(仅限:[email protected]#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合
# 2. 密码长度不能低于8位
#
# 高级密码要求:
# 1. 密码必须由数字、字母及特殊字符(仅限:[email protected]#$%^&*()_=-/,.?<>;:[]{}|\)三种组合
# 2. 密码只能由字母开头
# 3. 密码长度不能低于16位‘‘‘

方法一:通过检查循环输入密码的每一个字母,是否包含数字、字母或特殊字符,然后通过逻辑运算符组合判断是为低级密码/中级密码/高级密码。

 1 def check_passwd():
 2     character = ‘[email protected]#$%^&*()_=-/,.?<>;:[]{}|\\‘
 3     while True:
 4         context = input("请输入密码:")
 5         length = len(context)
 6         dit = 0
 7         alp = 0
 8         char = 0
 9         flag = 1
10         for n in context:
11             if n in character:                                #检查密码是否有特殊字符
12                 char = 1
13             elif n.isdigit():                                 #检查密码是否有数字
14                 dit = 1
15             elif n.encode(‘UTF-8‘).isalpha():                 #检查密码是否有字母
16                 alp = 1
17             else:                                             #检查密码含有其他字符
18                 flag = 0
19
20         if flag == 0:
21             result = "密码不合法!密码只能由数字、字母及特殊字符组成,请重新输入:"
22         elif dit and alp and char and length >= 16 and context[0].isalpha():
23         #高级密码,密码有数字、字母和特殊字母,长度大于等于16位,由字母开头
24             result = "您的密码等级为高"
25             break
26         elif ((dit and alp) or (dit and char) or (alp and char)) and length > 8:
27         #密码由数字和字母、或数字和特殊字符、或字母和特殊字符组成,且长度大于8位
28             result = "您的密码等级为中,请使用数字、字母及特殊字符三种组合,由字母开头,密码位数不少于16位来提升至高等级"
29         elif (dit or alp) or length <=8:
30         #密码由数字或字母组成,或长度小于等于8位
31             result = "您的密码等级为低,请使用数字、字母及特殊字符三种组合,由字母开头,密码位数不少于16位来提升至高等级"
32         else:
33         #其他情况则返回密码不合法
34             result = ‘密码不能全为特殊字符,请重新输入!‘
35
36         print(result)
37
38 check_passwd()

原文地址:https://www.cnblogs.com/felixqiang/p/10261288.html

时间: 2024-08-08 09:28:08

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

请写一个算法,用于将list集合内重复元素剔除

package Homework; import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.Scanner;/** * list集合是否可以包含重复元素? * 如果可以,请写一个算法,用于将list集合内重复元素剔除. * @author 张致远 * */public class Homework2 { public static void main(String[]

需求:有一个猜数字小游戏,请写一个程序实现在测试类中只能使用5次,超过5次提示:游戏试玩结束,请付费。

package cn.idcast4; import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.Reader;import java.io.Writer;import java.util.Properties; /* * 需求:有一个猜数字小游戏,请写一个程序实现在测试类中只能使用5次, *

使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数。请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?”。

设计思想 定义一个静态字段,在构造函数中写一个静态字段自家的语句,这样,因为静态字段不会因为在此调用而改变数值所以可以计算建立对象的个数. 源代码 //使用静态字段和构造函数跟踪对象 package bao; public class sum { public static int a=0; int c; public sum(int cc) { c=cc; a++; } public int get() { return a; } } package bao; public class D_X

使用类的静态字段和构造函数,请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?”。

1.程序设计思想 定义一个静态字段,在构造函数中写一个这个静态字段自加的语句,这样,因为静态字段不会因为再次调用而改变数值所以可以计算建立对象的个数. 2.程序源代码 //使用类的静态字段和构造函数跟踪对象 class sum{  public static int a=0;   int c;   public sum(int cc)  {   c=cc;   a++;  }  public int get()  {   return a;  } } public class WyText_LL

使用python中的smtplib库,写一个简单的发送qq邮件程序,速成!!

#-*-coding:utf-8-*- import smtplib from  smtplib import SMTP_SSL from email.mime.text import MIMEText from email.header import Header #定义一个字典存储发送和接收,邮箱账号密码主题.内容及编码相关信息 mail_info = {     "from": "[email protected]",  #发件人     "to&q

请写一个java类,在任何时候都可以向它查询“你已经创建了多少个对象?”

这个问题解决方法很简单,只要设置一个类的静态整型成员(事例中我设置的是n),初始化值为1,然后在其构造函数中添加语句使其+1(n++),这样需要查询创建了多少个对象时直接查询n的值就可以了,如下: 1 package trr; 2 3 public class trr 4 { 5 public static void main(String[] args) 6 { 7 a c1=new a(); 8 System.out.println("创建了"+a.n+"个对象"

ruby写一个文件内容相似性比较的代码

1.相似度定义 我们定义,则,我们设,则,|C|=s,则相似度p=,p(0,1) 2.相似度检测算法设计 算法设计: 定义4个字符为一个字符串,将T1,T2分割成若干字符串,若剩余字符不足4个,则以空格补全.将分割后的T1T2计数,记下|T1|=n,|T2|=m,s=0:在T1中取出第一字符串,检测是否在T2中,若存在,则s+1,并删除与被检测字符串相同的字符串,循环到T2检测,直到T2中不存在被检测的字符串,循环到T1,提出下一个被检测字符串,到T2中检测:如此循环检测,直到T1中的所有字符串

十三道Python练习题

一.完美立方 编写一个程序,对任给的正整数N (N≤100),寻找所有的四元组(a, b, c, d),使得a^3= b^3 + c^3 + d^3,其中a,b,c,d 大于 1, 小于等于N. 输入一个正整数N (N≤100),输出 每行输出一个完美立方.输出格式为: Cube = a, Triple = (b,c,d) 其中a,b,c,d所在位置分别用实际求出四元组值代入. 请按照a的值,从小到大依次输出.当两个完美立方 等式中a的值相同,则b值小的优先输出,仍相同则c值小的优先输出,再相同

oracle 10G 没有 PIVOT 函数怎么办,自己写一个不久有了

众所周知,静态SQL的输出结构必须也是静态的.对于经典的行转列问题,如果行数不定导致输出的列数不定,标准的答案就是使用动态SQL, 到11G里面则有XML结果的PIVOT. 但是 oracle 10G 没有 PIVOT 函数怎么办,自己写一个不久有了.上代码 直接点. CREATE OR REPLACEtype PivotImpl_shx as object( ret_type anytype, -- The return type of the table function stmt varc