首页 > 编程语言 >python来判断密码强弱-类

python来判断密码强弱-类

时间:2024-03-16 21:29:27浏览次数:22  
标签:stregth level python self 密码 password 强弱 def

'''
设计者:ISDF
版本:v1.0
日期:2019/4/3
'''

'''
设计者:ISDF
版本:v2.0
日期:2024/4/3
'''

class PasswordTool:
    '''
    密码工具类
    '''
    def __init__(self,password):
        #类的属性
        self.password = password
        self.stregth_level = 0
    def check_number_exist(self):
        '''判断字符串是否有数字'''
        has_number = False
        for c in self.password:
            if c.isnumeric():
                has_number = True
                break
        return has_number

    def check_letter_exist(self):
        '''判断字符串是否有字母'''
        has_letter = False
        for c in self.password:
            if c.isalpha():
                has_letter = True
                break
        return has_letter
    def process_passwod(self):
        # 规则1:密码长度大于8
        if len(self.password) >= 8:
            self.stregth_level += 1
        else:
            print("密码长度必须大于8位!")
        # 规则2:包含数字
        if self.check_number_exist():
            self.stregth_level += 1
        else:
            print("密码要求包含数字!")
        # 规则2:包含字母
        if self.check_letter_exist():
            self.stregth_level += 1
        else:
            print("密码要求包含字母!")


class FileTool:
    '''
        文件工具类
    '''
    def __init__(self,filepath):
        self.filepath = filepath
    def write_to_file(self,line):
        f = open(self.filepath,'a')
        f.write(line)
        f.close()
    def read_from_file(self):
        f = open(self.filepath, 'r')
        lines = f.readlines()
        f.close()
        return lines
def main():
    '''主函数'''

    try_times = 5
    filepath='paaword4.0.txt'
    # 实例化对象
    # 写文件
    filetool = FileTool(filepath)

    while try_times > 0:
        password = input("请输入密码:")
        tool = PasswordTool(password)
        tool.process_passwod()

        #密码强弱

        stregth_level = tool.stregth_level
        print()
        # f = open('password_3.0.txt', 'a')
        line = '密码:{},强度:{}\n'.format(password,stregth_level)
        # f.close()
        filetool.write_to_file(line)
        if stregth_level==3:
            print("恭喜密码合格")
            break
        else:
            print("呵呵密码不合格")
            try_times -= 1

    if try_times <= 0:
        print("密码输入次数太多,设置密码失败!!!!")
    #读操作
        lines = filetool.read_from_file()
        print(lines)



if __name__ == '__main__':
    main()

结果:

标签:stregth,level,python,self,密码,password,强弱,def
From: https://blog.csdn.net/weixin_41583925/article/details/136748335

相关文章

  • Python《基础知识》
    1.列表:list列表内的元素通过方括号[]来表示,且可以修改例:list=[1,2,3,"fhdsj","sum"]有关list的函数:cmp(list1,list2)比较两个列表的元素len(list)返回列表元素个数max(list)返回列表元素最大值min(list)返回列表元素最小值list(seq)将元组转换为列表示例:list......
  • CTF 题型 python原型链污染 题记和总结
    CTF题型python原型链污染题记和总结文章目录一般特征关键函数(判断python原型链污染依据)1.[GeekChanlleng2023ezpython]解题思路反思总结2.[DASCTF2023七月挑战赛]json识别`unicode`**全局变量获取**解题思路1读env:污染__globals____file__-->../../../......
  • 简单对比Java、Python、Go、Rust等常见语言计算斐波拉契数的性能
    前言最近简单学了下Rust,以我这种菜鸟水平,没感受到什么安全、性能什么方面的优势,只觉得概念太多,编译各种报错。暂时也写不出来什么玩法,索性对比下各种学过的语言的性能。部分语言很早之前学过,很久不用就忘了,所以是用GPT写的。但运行逻辑很简单,所以应该没什么影响。具体的代码可以......
  • Python面向对象编程:入门篇(类和对象)
    目录1.什么是面向对象编程(OOP)?2.类和对象2.1类的定义和创建2.2对象的创建和使用2.3类和对象的关系3.属性和方法3.1实例属性和类属性3.2实例方法和类方法3.3静态方法结语Python语言设计之初,就是为了面向对象。所以Python的面向对象更加易于理解。如果你以......
  • 华为OD机试Python - 排队游戏
    排队游戏前言:本专栏将持续更新互联网大厂机试真题,并进行详细的分析与解答,包含完整的代码实现,希望可以帮助到正在努力的你。关于大厂机试流程、面经、面试指导等,如有任何疑问,欢迎联系我,wechat:steven_moda;email:[email protected];备注:CSDN。题目描述新来的老师给班里的同......
  • 8.Python基本语法·注释——《跟老吕学Python编程》
    8.Python中的注释——《跟老吕学Python编程》Python基本语法Python注释单行注释老吕举栗1:老吕举栗2:老吕举栗3:多行注释老吕单双引号举栗:多行注释常见错误1多行注释常见错误1老吕想说一分钟让你记住Python注释怎么写注释的写作风格与规范来,大家再跟我背一遍Python注释......
  • 华为OD机试Python - 人气最高的店铺
    人气最高的店铺前言:本专栏将持续更新互联网大厂机试真题,并进行详细的分析与解答,包含完整的代码实现,希望可以帮助到正在努力的你。关于大厂机试流程、面经、面试指导等,如有任何疑问,欢迎联系我,wechat:steven_moda;email:[email protected];备注:CSDN。题目描述某购物城有m个......
  • 第一章python科学编程入门
    简单梳理一下python的基本编码规范Python的基本编码规范主要遵循PEP8——PythonEnhancementProposal#8。它为Python代码的编写提供了一个风格指南,以确保代码具有一致的风格,便于阅读和维护。以下是一些关键的编码规范以及代码示例:缩进使用4个空格来进行缩进,不要使用制......
  • Python 小小入门分享
    介绍1)linux  开发平台2)mysql 数据库--数据存储和查询的工具3)kettle 数据采集工具4)FineB 数据可视化工具1.大数据属于新处理模式----传统的工具无法处理(太大无法捕捉等)解决1)海量数据存储 2)海量数据运算特点 大(数据体量大)     多(种类的......
  • CentOS 同时安装多个版本的Python3
    1、背景已安装了Python3.6.4,需要再安装Python3.9版本 2、操作步骤(1)寻找当前Python3.9版本最新稳定版的子版本通过官网查找,目前为3.9.18,下载到本地文件:Python-3.9.18.tgz(2)通过XFTP软件,将文件上传到CentOS的/usr/local/python3.9.18 目录(3)更新系统,确保系统是最......