番禺制作网站系统,wordpress下载页面天涯,河南住房与城乡建设部网站,什么是百度推广《Python网络安全项目实战》项目6 编写密码工具程序 项目6 编写密码工具程序任务6.1 猜数字游戏任务描述任务分析任务实施6.1.1 编写基本的猜数字程序6.1.3 测试并修改程序6.1.4 给程序增加注释 任务拓展任务实施6.2.1 生成随机密码6.2.4 菜单功能 相关知识1. 密码字典2. 密码字… 《Python网络安全项目实战》项目6 编写密码工具程序 项目6 编写密码工具程序任务6.1 猜数字游戏任务描述任务分析任务实施6.1.1 编写基本的猜数字程序6.1.3 测试并修改程序6.1.4 给程序增加注释 任务拓展任务实施6.2.1 生成随机密码6.2.4 菜单功能 相关知识1. 密码字典2. 密码字典生成软件 任务评价任务拓展项目评价 项目6 编写密码工具程序
在密码的使用过程中我们给出一个密码经常是弱密码这样的密码有一定的规律可以比较容易记忆。但是使用弱密码很容易就可以对你的密码进行破解。所以我们要编写一个密码工具程序对给出的密码进行测试确定这个密码是不是弱密码是不是可以使用。并且我们给出的程序功能需要自动生成强密码并对密码进行测试确定不是弱密码。 项目目标 熟悉Python的关键要素 熟练使用Python语言对数据安全、系统安全编程。
任务6.1 猜数字游戏
任务描述
项目经理要求我们编写猜数字游戏从而模拟纯数字密码的生成与猜测。
任务分析
编写基本的猜数字程序 1编写一个程序用来进行输出。 2使用模块random中的函数randint()生成一个随机整数。 3使用Python内置函数input()提示用户输入一个整数。 4对比两个数字输出对比结果。加入新功能更新版本 1为猜数字程序加入连续猜数的功能。 2测试并修改程序。 3给程序增加注释。
任务实施
6.1.1 编写基本的猜数字程序
【步骤1】在项目一中我们已经完成了命令行交互操作时“Hello world!”的输出如图6-1-1所示。
图6-1-1 交互输出 【步骤2】下面我们编写一个程序用来输出“Hello world”如图6-1-2所示。
图6-1-2 程序代码 【步骤3】按F5执行恭喜你虽然这个程序只有一行代码但是它已经可以运行了如图6-1-3所示。
图6-1-3 程序输出 【步骤4】我们将这个程序进行改进使用模块random中的函数randint()生成一个随机整数如图6-1-4所示。
图6-1-4 随机数生成 【步骤5】程序每运行一次就生成一个随机整数如图6-1-5所示。
图6-1-5 随机数 【步骤6】我们将这个程序进行改进加入输入功能如图6-1-6所示。
图6-1-6 输入 【步骤7】程序运行后输出一个从1到1000000之间的随机整数和一个用户输入的数字结果如图6-1-7所示。
图6-1-7 输出 【步骤8】使用int()内置函数将输入结果转换为整形对比两个数字如图6-1-8所示。
图6-1-8 对比 【步骤9】运行结果如下如图6-1-9所示。
图6-1-9 结果 6.1.2 为猜数字程序加入连续猜数的功能 【步骤1】增加猜测机会生成1到100之间的随机数给9次猜测的机会如图6-1-10所示。
图6-1-10 改进 【步骤2】运行结果如下如图6-1-11所示。
图6-1-11 运行
6.1.3 测试并修改程序
【步骤1】设计测试用例输入各种极端的数值进行测试。
【步骤2】修改程序给程序增加容错增强程序的键壮性如图6-1-12所示。
图6-1-12 容错 【步骤3】设计测试用例输入各种极端的数值进行测试。
6.1.4 给程序增加注释
【步骤1】给程序增加注释如图6-1-13所示。
图6-1-13 注释 【步骤2】编制版本号再次测试并提交程序如图6-1-14所示。
图6-1-14 版本号 #程序完整代码如下
#猜密码游戏:ver-0.1-20170712
import random #引入模块用于生成随机数
x random.randint(1,100) #生成随机整数
for i in range(1,10): #当1i10时循环try: #异常容错#等待用户输入,并将输入转换为整形y int(input(请输入一个整数:))except: #例外,程序出现异常时执行print(请检查,您输入的不是一个整数)continue #继续执行循环 if xy: #如果x大于y执行print(太小了)elif x y: #否则如果x小于y执行print(太大了)else: #否则执行下面的代码break #中断并跳出循环if xy or xy: #如果x大于y,和x小于yprint(你输了)
elif x y: #否则如果x等于y,执行下级语句print(你赢了)
else: #否则执行下级语句print(输入错误)如果以上代码你还无法看懂不要着急后面的项目中我们会对每一个知识和技能点进行学习。 相关知识 弱密码 弱密码Weak passwords即容易破译的密码多为简单的数字组合、帐号相同的数字组合、键盘上的临近键或常见姓名例如“123456”、“abc123”、“Michael”等。终端设备出厂配置的通用密码等都属于弱密码范畴。 设定密码的原则 密码共用问题设定密码时请选择一个没有在其他任何地方使用的密码。如果你在另一个服务也使用相同的密码攻击者可以同时获得两个服务的访问。 密码有效时间假定攻击者已经破解了密码并可以访问云服务那么每90天修改一次密码就非常关键。这种做法有助于防止攻击者进一步取得认证并窃取更多的敏感信息。 密码最短长度密码长度应至少8位虽然我们通常建议更长的密码。为了安全起见造一个句子来作为你的密码。 密码强度密码应该同时使用小写和大写字母数字和特殊字符。这确保攻击者在暴力破解密码时必须通过更多数量的组合才能成功。 任务评价 请学生按照下表中的要求完成本次评价并在物理机桌面上以自己的两位学号姓名的形式命名文件夹保存所有截图文件文件保存为jpeg或 png格式。
任务拓展
1编写程序随机选取0到100间的偶数并显示到屏幕。 2编写程序随机选取键盘可打印字符并显示到屏幕。 任务6.2 编写密码工具程序 任务描述 使用python编写一个密码工具程序 任务分析
原形设计 • 密码由大小写英文字母、数字、特殊符号组成 • 将需要的字母、数字和符号放入列表 • 使用random.sample()产生随机序列 • 将选取的字符加入一个新的列表 • 把生成的新列表中的字符连接成字符串作为密码增加功能 • 根据输入控制密码位数 • 测试弱密码功能 • 菜单功能
任务实施
6.2.1 生成随机密码
【步骤1】密码由大小写英文字母、数字、特殊符号组成将需要的符号放入列表如图6-2-1所示。
图6-2-1 符号列表 【步骤2】使用Print将列表打印出来如图6-2-2所示。
图6-2-2 输出列表 【步骤3】按F5运行程序将列表打印出来进行检查如图6-2-3所示。
图6-2-3 运行 【步骤4】在交互模式引入random模块使用random.sample()产生随机序列如图6-2-4所示。
图6-2-4 随机序列 【步骤5】将使用random.sample()产生随机序列的功能写入程序如图6-2-5所示。
图6-2-5 程序 【步骤6】:按F5运行程序产生一个16字符随机序列的列表结果如下如图6-2-6所示。
图6-2-6 运行 【步骤7】使用’’.join()将列表内的随机序列连接成字符串如图6-2-7所示。
图6-2-7 连接 【步骤8】按F5运行程序产生一个16字符的随机密码如图6-2-8所示。
图6-2-8 随机密码 6.2.2 根据输入控制密码位数 至此我们已经写出一个自动生成16字符随机密码的小程序。现在大家思考下面两个问题 我们可以人为的控制密码位数吗 这个随机生成的密码你还能猜出来吗 【步骤1】输入密码长度并转换为整形数值用来控制生成密码的长度如图6-2-9所示。
图6-2-9 密码长度 【步骤2】程序要求输入密码长度的时候我们分别两次输入16、24生成了相应长度的随机密码如图6-2-10所示。
图6-2-10 生成密码 【步骤3】程序要求输入密码长度的时候我们输入78程序报错说我们输入的位数超过了样本列表charList的长度或者是负数如图6-2-11所示。
图6-2-11 报错 【步骤4】程序要求输入密码长度的时候我们分别两次输入77、16生成了相应长度的随机密码如图6-2-12所示。
图6-2-12 生成密码 【步骤5】加入容错机制如图6-2-13所示。
图6-2-13 容错 【步骤6】输入超过77的数字、负数、字符会提示输入错误如图6-2-14所示。
图6-2-14 输入检查 【步骤7】将以上程序定义成为一个函数方便以后调用如图6-2-15所示。
图6-2-15 函数定义 【步骤8】修改程序当输入错误时函数返回默认16字符的随机密码如图6-2-16所示。
图6-2-16 默认字符数 【步骤9】将函数内的密码位数输入功能移出改为函数调用时进行参数传递如图6-2-17所示。
图6-2-17 参数传递 【步骤10】将输入密码长度功能放入函数definLengPass()以备随后进行调用现在我们调用randPass()生成16字符密码如图6-2-18所示。
图6-2-18 函数调用 【步骤11】现在我们调用definLengPass(),生成客户指定位数密码如图6-2-19所示。
图6-2-19 生成密码 6.2.3 弱密码测试 本课程附了一个弱密码字典文件password.txt使用该文件能猜测出网民常用的密码 password.txt文件内的部分内容如下 国内网民常用的25个弱密码包括000000、111111、11111111、112233、123123、123321、123456、12345678、654321、666666、888888、abcdef、abcabc、abc123、a1b2c3、aaa111、123qwe、qwerty、qweasd、admin、password、pssword、passwd、iloveyou、5201314、asdfghjkl、66666666、88888888 国外网民常用的25个弱密码包括password、123456、12345678、qwerty、abc123、monkey、1234567、letmein、trustno1、dragon、baseball、111111、iloveyou、master、sunshine、ashley、bailey、passw0rd、shadow、123123、654321、superman、qazwsx、michael、football、asdfghjkl 【步骤1】请用户输入密码在password.txt当中进行查找如果找到就停止并提示用户“找到它了这是一个弱密码”如图6-2-20所示。
图6-2-20 弱密码测试 【步骤2】自动生成一个密码并在弱密码文本里进行查找你会发现位数较短的密码有时会在密码文本里找到但是自动生成的六位以上的密码很难在弱密码文本里找到如图6-2-21所示。
图6-2-21 密码生成
6.2.4 菜单功能
【步骤1】加入选择可以让用户决定用于生成密码还是弱口令检查如图6-2-22所示。
图6-2-22 功能选择 #下面是程序的代码
import random
def randPass(length):生成随机密码charList [a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,0,1,2,3,4,5,6,7,8,9,0,~,!,#,$,%,^,,*,(,),-,,,_]try: password .join(random.sample(charList,length))return(password)except: password .join(random.sample(charList,16))return(password)
def definLengPass():try:length int(input(请输入密码长度,超过77将返回默认的16字符密码:))return(randPass(length))except:print(输入错误!)exit
def findPass(password):f open(password.txt,r)for line in f.readlines():print(line,password)if line.strip(\n) password:print(找到它了这是一个弱密码)break
def main():flag input(1.密码生成\n2.弱口令测试\n请选择1/2:)if flag 1:password definLengPass()print(password)elif flag 2:password input(请输入密码)findPass(password)print(password)else:print(输入错误)main()【步骤2】按F5运行程序会出现下列选择菜单我们选择1.密码生成并回车然后提示输入密码长度的时候我们现在输入32然后计算机给出了一个32字符长度的随机密码如图6-2-23所示。
图6-2-23 程序运行 【步骤3】按F5运行程序会出现下列选择菜单我们选择2.弱口令测试并回车然后输入一个密码这里我们输入‘paper’并回车计算机就会开始在密码文本里面开始搜索这个密码如图6-2-24所示。
图6-2-24 弱口令测试 【步骤4】当计算机在密码文本里找到这个密码的时候会提示“找到它了这是一个弱密码”显示出这个密码并停止查找如图6-2-25所示。
图6-2-25 测试结果 【步骤5】给程序增加添加密码字典功能如图6-2-26所示。
图6-2-26 密码字典 【步骤6】给程序添加退出功能如图6-2-27所示。
图6-2-27 退出功能 #下面是程序的代码
import random
def randPass(length):生成随机密码charList [a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,0,1,2,3,4,5,6,7,8,9,0,~,!,#,$,%,^,,*,(,),-,,,_]try: password .join(random.sample(charList,length))return(password)except: password .join(random.sample(charList,16))return(password)
def definLengPass():try:length int(input(请输入密码长度,超过77将返回默认的16字符密码:))return(randPass(length))except:print(输入错误!)exit
def findPass(password):f open(password.txt,r)for line in f.readlines():#print(line,password)if line.strip(\n) password:return(True)#print(找到它了这是一个弱密码)breakf.close()
def testPass(password):if findPass(password):print(password密码字典中已经存在,这是一个弱密码)else:print(password密码字典中不存在,如果是一个弱密码,请加入密码字典!)
def saveToDicPass(password):f open(password.txt,a)f.writelines(\npassword)f.close()
def menuDisply():flag input(\n1.密码生成\n2.弱口令测试\n3.生成密码弱口令测试\n4.添加弱口令字典\n5.退出\n请选择1/2/3/4/5:)if flag 1:password definLengPass()print(password)menuDisply()elif flag 2:password input(请输入密码)testPass(password)menuDisply()elif flag 3:password definLengPass()testPass(password)menuDisply()elif flag 4:password input(请输入弱密码)if findPass(password):print(password密码字典中已经存在)else:saveToDicPass(password)if findPass(password):print(password成功加入密码字典)else:print(password加入密码字典没有成功)menuDisply()elif flag 5:exitelse:print(输入错误)def main():menuDisply()main()【步骤7】程序运行显示功能菜单完成后可以选择退出如图6-2-28所示。
图6-2-28 功能菜单
相关知识
1. 密码字典
密码字典是配合密码破译软件所使用的。密码字典里包括许多人们习惯性设置的密码这样可以提高密码破译软件的密码破译成功率和命中率缩短密码破译的时间。 如果一个人密码设置没有规律或很复杂未包含在密码字典里这个字典就没有用了甚至会延长密码破译所需要的时间。
2. 密码字典生成软件
目前常用的密码字典生成软件主要为以下几款 • 木头字典生成器。 • 黑刀超级字典生成器。 • 真空密码字典生成器。 • 万能钥匙字典生成工具。
任务评价
请学生按照下表中的要求完成本次评价并在物理机桌面上以自己的两位学号姓名的形式命名文件夹保存所有截图文件文件保存为jpeg或 png格式。
任务拓展
收集并总结国内常用弱密码并将其加入你的密码字典收集并总结国外常用弱密码并将其加入你的密码字典
项目评价
文章转载自: http://www.morning.gtylt.cn.gov.cn.gtylt.cn http://www.morning.qbtj.cn.gov.cn.qbtj.cn http://www.morning.xhklb.cn.gov.cn.xhklb.cn http://www.morning.mqzcn.cn.gov.cn.mqzcn.cn http://www.morning.pzwfw.cn.gov.cn.pzwfw.cn http://www.morning.qggm.cn.gov.cn.qggm.cn http://www.morning.sxmbk.cn.gov.cn.sxmbk.cn http://www.morning.qtrlh.cn.gov.cn.qtrlh.cn http://www.morning.bgygx.cn.gov.cn.bgygx.cn http://www.morning.nlbhj.cn.gov.cn.nlbhj.cn http://www.morning.rpfpx.cn.gov.cn.rpfpx.cn http://www.morning.mrlkr.cn.gov.cn.mrlkr.cn http://www.morning.tjkth.cn.gov.cn.tjkth.cn http://www.morning.pffqh.cn.gov.cn.pffqh.cn http://www.morning.fdrch.cn.gov.cn.fdrch.cn http://www.morning.tyhfz.cn.gov.cn.tyhfz.cn http://www.morning.zdwjg.cn.gov.cn.zdwjg.cn http://www.morning.qsmdd.cn.gov.cn.qsmdd.cn http://www.morning.fkdts.cn.gov.cn.fkdts.cn http://www.morning.zxxys.cn.gov.cn.zxxys.cn http://www.morning.bncrx.cn.gov.cn.bncrx.cn http://www.morning.bpmnj.cn.gov.cn.bpmnj.cn http://www.morning.jbgzy.cn.gov.cn.jbgzy.cn http://www.morning.dfrenti.com.gov.cn.dfrenti.com http://www.morning.ntkpc.cn.gov.cn.ntkpc.cn http://www.morning.qszyd.cn.gov.cn.qszyd.cn http://www.morning.xhgcr.cn.gov.cn.xhgcr.cn http://www.morning.bnzjx.cn.gov.cn.bnzjx.cn http://www.morning.tkryt.cn.gov.cn.tkryt.cn http://www.morning.bkxnp.cn.gov.cn.bkxnp.cn http://www.morning.kpgft.cn.gov.cn.kpgft.cn http://www.morning.ysckr.cn.gov.cn.ysckr.cn http://www.morning.zcqtr.cn.gov.cn.zcqtr.cn http://www.morning.tphjl.cn.gov.cn.tphjl.cn http://www.morning.qnbzs.cn.gov.cn.qnbzs.cn http://www.morning.ntzbr.cn.gov.cn.ntzbr.cn http://www.morning.xbkcr.cn.gov.cn.xbkcr.cn http://www.morning.kkjlz.cn.gov.cn.kkjlz.cn http://www.morning.tnqk.cn.gov.cn.tnqk.cn http://www.morning.dqrhz.cn.gov.cn.dqrhz.cn http://www.morning.gdpai.com.cn.gov.cn.gdpai.com.cn http://www.morning.tgxrm.cn.gov.cn.tgxrm.cn http://www.morning.yhwyh.cn.gov.cn.yhwyh.cn http://www.morning.deupp.com.gov.cn.deupp.com http://www.morning.prmyx.cn.gov.cn.prmyx.cn http://www.morning.rnngz.cn.gov.cn.rnngz.cn http://www.morning.tktcr.cn.gov.cn.tktcr.cn http://www.morning.jjxnp.cn.gov.cn.jjxnp.cn http://www.morning.xjqrn.cn.gov.cn.xjqrn.cn http://www.morning.zxwqt.cn.gov.cn.zxwqt.cn http://www.morning.jhxdj.cn.gov.cn.jhxdj.cn http://www.morning.ndrzq.cn.gov.cn.ndrzq.cn http://www.morning.nwczt.cn.gov.cn.nwczt.cn http://www.morning.hphfy.cn.gov.cn.hphfy.cn http://www.morning.gxfzrb.com.gov.cn.gxfzrb.com http://www.morning.ai-wang.cn.gov.cn.ai-wang.cn http://www.morning.smsjx.cn.gov.cn.smsjx.cn http://www.morning.nqfxq.cn.gov.cn.nqfxq.cn http://www.morning.ywpcs.cn.gov.cn.ywpcs.cn http://www.morning.rszyf.cn.gov.cn.rszyf.cn http://www.morning.kbkcl.cn.gov.cn.kbkcl.cn http://www.morning.zcmpk.cn.gov.cn.zcmpk.cn http://www.morning.yrjym.cn.gov.cn.yrjym.cn http://www.morning.chbcj.cn.gov.cn.chbcj.cn http://www.morning.cpctr.cn.gov.cn.cpctr.cn http://www.morning.dytqf.cn.gov.cn.dytqf.cn http://www.morning.dgmjm.cn.gov.cn.dgmjm.cn http://www.morning.rqqkc.cn.gov.cn.rqqkc.cn http://www.morning.trplf.cn.gov.cn.trplf.cn http://www.morning.yldgw.cn.gov.cn.yldgw.cn http://www.morning.kqblk.cn.gov.cn.kqblk.cn http://www.morning.xwlmg.cn.gov.cn.xwlmg.cn http://www.morning.ccdyc.cn.gov.cn.ccdyc.cn http://www.morning.vibwp.cn.gov.cn.vibwp.cn http://www.morning.nmqdk.cn.gov.cn.nmqdk.cn http://www.morning.sbwr.cn.gov.cn.sbwr.cn http://www.morning.shsh1688.com.gov.cn.shsh1688.com http://www.morning.rwzmz.cn.gov.cn.rwzmz.cn http://www.morning.lqznq.cn.gov.cn.lqznq.cn http://www.morning.pwrkl.cn.gov.cn.pwrkl.cn