开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
开源项目 > 其他开源 > 教程配套代码 &&
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (1)
master
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
项目仓库所选许可证以仓库主分支所使用许可证为准
master
分支 (1)
master
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (1)
master
bookcode2019
/
python09
/
makePasswordFileClass.py
bookcode2019
/
python09
/
makePasswordFileClass.py
makePasswordFileClass.py 5.01 KB
一键复制 编辑 原始数据 按行查看 历史
zcatt 提交于 2020年06月29日 08:44 +08:00 . add python08/09
#!/usr/bin/env python
#-*- coding: utf-8 -*-
__author__ = 'hstking hstking@hotmail.com'
import os
import platform
import itertools
import time
class MakePassword(object):
def __init__(self):
self.rawList = []
self.denyList = ['',' ','@']
self.pwList = []
self.minLen = 6
self.maxLen = 16
self.timeout = 3
self.flag = 0
self.run = {
'0':exit,
'1':self.getRawList,
'2':self.addDenyList,
'3':self.clearRawList,
'4':self.setRawList,
'5':self.modifyPasswordLen,
'6':self.createPasswordList,
'7':self.showPassword,
'8':self.createPasswordFile
}
self.main()
def main(self):
while True:
self.mainMenu()
op = raw_input('输入选项:')
if op in map(str,range(len(self.run))):
self.run.get(op)()
else:
self.tipMainMenuInputError()
continue
def mainMenu(self):
self.clear()
print(u'||'),
print(u'='*40),
print(u'||')
print(u'|| 0:退出程序')
print(u'|| 1:输入密码原始字符串')
print(u'|| 2:添加非法字符到列表')
print(u'|| 3:清空原始密码列表')
print(u'|| 4:整理原始密码列表')
print(u'|| 5:改变默认密码长度(%d-%d)' %(self.minLen,self.maxLen))
print(u'|| 6:创建密码列表')
print(u'|| 7:显示所有密码')
print(u'|| 8:创建字典文件')
print(u'||'),
print(u'='*40),
print(u'||')
print(u'当前非法字符为:%s' %self.denyList)
print(u'当前原始密码元素为:%s' %self.rawList)
print(u'共有密码%d个' %len(self.pwList))
if self.flag:
print(u"已在当前目录创建密码文件dic.txt")
else:
print(u"尚未创建密码文件")
def clear(self):
OS = platform.system()
if (OS == u'Windows'):
os.system('cls')
else:
os.system('clear')
def tipMainMenuInputError(self):
self.clear()
print(u"只能输入0-7的整数,等待%d秒后重新输入" %timeout)
time.sleep(timeout)
def getRawList(self):
self.clear()
print(u"输入回车后直接退出")
print(u"当前原始密码列表为:%s" %self.rawList)
st = None
while not st == '':
st = raw_input("请输入密码元素字符串:")
if st in self.denyList:
print(u"这个字符串是预先设定的非法字符串")
continue
else:
self.rawList.append(st)
self.clear()
print(u"输入回车后直接退出")
print(u"当前原始密码列表为:%s" %self.rawList)
def addDenyList(self):
self.clear()
print(u"输入回车后直接退出")
print(u"当前非法字符为:%s" %self.denyList)
st = None
while not st == '':
st = raw_input("请输入需要添加的非法字符串:")
self.denyList.append(st)
self.clear()
print(u"输入回车后直接退出")
print(u"当前非法字符列表为:%s" %self.denyList)
def clearRawList(self):
self.rawList = []
def setRawList(self):
a = set(self.rawList)
b = set(self.denyList)
self.rawList = []
for str in set(a - b):
self.rawList.append(str)
def modifyPasswordLen(self):
self.clear()
while True:
print(u"当前密码长度为%d-%d" %(self.minLen,self.maxLen))
min = raw_input("请输入密码最小长度:")
max = raw_input("请输入密码最大长度:")
try:
self.minLen = int(min)
self.maxLen = int(max)
except ValueError:
print(u"密码长度只能输入数字[6-18]")
break
if self.minLen not in xrange(6,19) or self.maxLen not in xrange(6,19):
print(u"密码长度只能输入数字[6-18]")
self.minLen = 6
self.maxLen = 16
continue
if self.minLen == self.maxLen:
res = raw_input("确定将密码长度设定为%d吗?(Yy/Nn)" %self.minLen)
if res not in list('yYnN'):
print(u"输入错误,请重新输入")
continue
elif res in list('yY'):
print(u"好吧,你确定就好")
break
else:
print(u"给个机会,改一下吧")
continue
elif self.minLen > self.maxLen:
print(u"最小长度比最大长度还大,可能吗?请重新输入")
self.minLen = 6
self.maxLen = 16
continue
else:
print(u"设置完毕,等待%d秒后回主菜单" %self.timeout)
time.sleep(self.timeout)
break
def createPasswordList(self):
titleList = []
swapcaseList = []
for st in self.rawList:
swapcaseList.append(st.swapcase())
titleList.append(st.title())
sub1 = []
sub2 = []
for st in set(self.rawList + titleList + swapcaseList):
sub1.append(st)
for i in xrange(2,len(sub1) + 1):
sub2 += list(itertools.permutations(sub1,i))
for tup in sub2:
PW = ''
for subPW in tup:
PW += subPW
if len(PW) in xrange(self.minLen,self.maxLen + 1):
self.pwList.append(PW)
else:
pass
def showPassword(self):
for i in xrange(len(self.pwList)):
if i%4 == 0:
print("%s\n" %self.pwList[i])
else:
print("%s\t" %self.pwList[i]),
print('\n')
print(u"显示%d秒,回到主菜单" %self.timeout)
time.sleep(self.timeout)
def createPasswordFile(self):
print(u"当前目录下创建字典文件:dic.txt")
time.sleep(self.timeout)
with open('./dic.txt','w+') as fp:
for PW in self.pwList:
fp.write(PW)
fp.write('\n')
self.flag = 1
if __name__ == '__main__':
mp = MakePassword()
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

bookcode2019是集结一些计算机图书所附源码的项目
取消

发行版

暂无发行版

开源评估指数源自 OSS-Compass 评估体系,评估体系围绕以下三个维度对项目展开评估:

1. 开源生态

  • 生产力:来评估开源项目输出软件制品和开源价值的能力。
  • 创新力:用于评估开源软件及其生态系统的多样化程度。
  • 稳健性:用于评估开源项目面对多变的发展环境,抵御内外干扰并自我恢复的能力。

2. 协作、人、软件

  • 协作:代表了开源开发行为中协作的程度和深度。
  • 人:观察开源项目核心人员在开源项目中的影响力,并通过第三方视角考察用户和开发者对开源项目的评价。
  • 软件:从开源项目对外输出的制品评估其价值最终落脚点。也是开源评估最"古老"的主流方向之一"开源软件" 的具体表现。

3. 评估模型

    基于"开源生态"与"协作、人、软件"的维度,找到与该目标直接或间接相关的可量化指标,对开源项目健康与生态进行量化评估,最终形成开源评估指数。

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/zcatt/bookcode2019.git
git@gitee.com:zcatt/bookcode2019.git
zcatt
bookcode2019
bookcode2019
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /