两种方法思考密码安全性

方法一:

#前置条件
symbol=‘[email protected]#$%^&*()_=-/,.?<>;:[]{}\|‘
letter=‘abcdefghijklmnopqrstuvwxyz‘
nums=‘0123456789‘
#判断密码安全性的程序
print(‘您好,请输入密码:‘)
passwd=input()
#首先判断一下用户输入的是不是空值
lenth=len(passwd)
while (lenth==0) or (passwd.isspace()):
    print(‘密码不能为空,请重新输入:‘)
    passwd=input()
    lenth=len(passwd)
#判断长度
if lenth<=8:
    lenrs=1
elif 8<lenth<=16:
    lenrs=2
else:
    lenrs=3
#判断是否有特殊符号
syrs=0
for each in symbol:
    if each in passwd:
        syrs+=1
#判断是否有字母
lers=0
for each in letter:
    if each in passwd:
        lers+=1
#判断是否有数字
numrs=0
for each in nums:
    if each in passwd:
        numrs=1
#整个的判断
if lenrs==1 or numrs==lenth or lers==lenth:
    print(‘您的密码安全系数较低‘)
elif lenrs==3 and syrs!=0 and lers!=0 and numrs!=0 and passwd[0] in letter:
    print(‘您的安全系数为高,请继续保持‘)
else:
    print(‘您的安全系数为中‘)

方法二:

# 密码安全性检查代码

#

# 低级密码要求:

#   1. 密码由单纯的数字或字母组成

#   2. 密码长度小于等于8位

#

# 中级密码要求:

#   1. 密码必须由数字、字母或特殊字符(仅限:[email protected]#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合

#   2. 密码长度不能低于8位

#

# 高级密码要求:

#   1. 密码必须由数字、字母及特殊字符(仅限:[email protected]#$%^&*()_=-/,.?<>;:[]{}|\)三种组合

#   2. 密码只能由字母开头

#   3. 密码长度不能低于16位

symbols = r‘‘‘`[email protected]#$%^&*()_+-=/*{}[]\|‘";:/?,.<>‘‘‘

chars = ‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ‘

nums = ‘0123456789‘

passwd = input(‘请输入需要检查的密码组合:‘)

# 判断长度

length = len(passwd)

while (passwd.isspace() or length == 0) :

passwd = input("您输入的密码为空(或空格),请重新输入:")

length = len(passwd)

if length <= 8:

flag_len = 1

elif 8 < length < 16:

flag_len = 2

else:

flag_len = 3

flag_con = 0

# 判断是否包含特殊字符

for each in passwd:

if each in symbols:

flag_con += 1

break

# 判断是否包含字母

for each in passwd:

if each in chars:

flag_con += 1

break

# 判断是否包含数字

for each in passwd:

if each in nums:

flag_con += 1

break

# 打印结果

while 1 :

print("您的密码安全级别评定为:", end=‘‘)

if flag_len == 1 or flag_con == 1 :

print("低")

elif flag_len == 2 or flag_con == 2 :

print("中")

else :

print("高")

print("请继续保持")

break

print("请按以下方式提升您的密码安全级别:\n\

\t1. 密码必须由数字、字母及特殊字符三种组合\n\

\t2. 密码只能由字母开头\n\

\t3. 密码长度不能低于16位‘")

break

时间: 2024-12-18 20:20:45

两种方法思考密码安全性的相关文章

MySQL单实例重置密码的两种方法

MySQL单实例重置密码的两种方法 在工作学习中,我们有时会忘记数据库的密码,下面是MySQL单实例密码重置的步骤. 说明: (1)[[email protected] ~]# cat /etc/redhat-release CentOS release 6.7 (Final) (2)[[email protected] ~]# mysql --version mysql  Ver 14.14 Distrib 5.7.13, for Linux (i686) using  EditLine wr

忘记linux中root密码怎么办?两种方法两步教你轻松搞定修改新的密码(仅限CentOS6.X)

忘记了Linux的系统管理员密码时,可以在本地通过进入单用户模式来重置root密码.两种方法(只需两步)具体步骤如下: 方法一: 在进入grub启动菜单的时候 按"a" 键操作编辑 kernel 参数后面加"single"告诉linux内核以单用户模式运行,回车启动即可.进去后,在命令行输入passwd回车,输入新的密码,重复输入,搞定.重启后输入新的密码即可登录.(注:grub界面时间很短,大概5秒,把握机会,如果不想等的话,在linux启动的时候随便按下一个键例

GitHub常用上传文件的两种方法 附带常见的问题及Git安装教程

从早上下课到现在一直在琢磨如何给Gethub下载本地文件,中午饭都没吃.还好是解决了,感觉挺有成就感的.O(∩_∩)O哈哈~ 好哒 闲话不说,说重点. 一.git的安装 百度云:http://pan.baidu.com/s/1mhFy8Ik 打开后 点next 2.继续点next 3.继续点next 4.选第一行是默认windows使用 选第二行是Windows和Linux都可以 点next 5.可以不用管,选择默认就可以了 点next 6.安装成功后弹出 7 这时候你找到你的git文件夹,点击

java连接sql server2008的两种方法

最近学到java连接数据库(sql server),发现常用的我们有两种方法,那么这里我总结一下这两种方法怎么使用,还有它们的区别,还有我们一般要使用哪一种方法. 方法一:使用jdbc-odbc桥连接sql server,作为中间媒介连接数据库; 注意我们每次在连接数据库前都必须要引入sql包:import java.sql.*;接下来的步骤都是习惯性步骤,我这里就按照每一步的使用进行列举: 1.配置数据源:打开控制面版->管理工具->数据源(ODBC)->(一般而言我们使用用户DSN)

Apache服务器自定义404页面的两种方法以及.htaccess的重要命令总结

Apache服务器自定义404错误页面有两种方法: 第一种方法最简单,直接在Apache的httpd.conf下进行配置修改命令,修改的内容请参看.htaccess命令写法中的自定义错误页面 第二种方法可以在.htaccess文件中配置命令,具体操作请参看.htaccess命令写法中的自定义错误页面 .htaccess使用方法总结 1 . 首先让的本地APACHE服务器器允许.htaccess修改 打开httpd.conf (1) Options FollowSymLinks AllowOver

Linux中生成密钥的两种方法

Linux中生成密钥的两种方法 SSH服务支持一种安全认证机制,即密钥认证.所谓的密钥认证,实际上是使用一对加密字符串,一个称为公钥(publickey), 任何人都可以看到其内容,用于加密:另一个称为密钥(privatekey),只有拥有者才能看到,用于解密.通过公钥加密过的密文使用密钥可以轻松解密,但根据公钥来猜测密钥却十分困难. ssh的密钥认证就是使用了这一特性.服务器和客户端都各自拥有自己的公钥和密钥.如何使用密钥认证登录linux服务器呢? 在使用密钥认证远程登入linux之前,我们

自动创建文件夹的两种方法

自动创建文件夹的两种方法 1.CreateDictionary() CreateDirectory(myPath, 0); //在临时文件夹中创建本应用的文件夹 原型为:BOOL WINAPI CreateDirectory(__in  LPCTSTR lpPathName, __in LPSECURITY_ATTRIBUTES lpSecurityAttributes); 其中lpPathName是要创建的目录的路径,第2个涉及安全性问题 传NULL就好了 例如: char path[MAX_

php如何防止图片盗用/盗链的两种方法

如今的互联网,采集网站非常多,很多网站都喜欢盗链/盗用别人网站的图片,这样不仅侵犯网权,还导致被盗链的网站消耗大量的流量,给服务器造成比较大的压力,本文章向大家介绍php如何防止图片盗用/盗链的两种方法,需要的朋友可以参考一下. 图片防盗链有什么用? 防止其它网站盗用你的图片,浪费你宝贵的流量.本文章向大家介绍php防止图片盗用/盗链的两种方法 Apache图片重定向方法 设置images目录不充许http访问 Apache服务器下防止图片盗链的办法 如果你的网站以图片为主,哪天发现月底没到流量

C++连接mysql数据库的两种方法

现在正做一个接口,通过不同的连接字符串操作不同的数据库.要用到mysql数据库,以前没用过这个数据库,用access和sql server比较多.通过网上的一些资料和自己的摸索,大致清楚了C++连接mysql的方法.可以通过2种方法实现. 第一种方法是利用ADO连接, 第二种方法是利用mysql自己的api函数进行连接. 第一种方法可以实现我当前的需求,通过连接不同的字符串来连接不同的数据库.暂时只连接了mysql,sqlserver,oracle,access.对于access,因为它创建表的