Python编程快速上手——强口令检测算法案例分析

 更新时间:2020年02月29日 17:35:46   作者:授我以驴  
这篇文章主要介绍了Python强口令检测算法,结合实例形式分析了Python针对密码口令强度检测的相关算法实现技巧,需要的朋友可以参考下

本文实例讲述了Python强口令检测算法。分享给大家供大家参考,具体如下:

强口令检测

题目如下:

  • 写一个函数,它使用正则表达式,确保传入的口令字符串是强口令。强口令定义:长度不少于8个字符,同时包含大写和小写字符,至少含有一个数字。可能需要多个正则表达式来测试字符串,以保证其强度。

思路如下:

  • 分析题目得到:
    – 程序需要编写一个函数
    – 用户输入强口令
    – 需要用正则表达式进行判定是否符合条件
  • 因此代码需要做以下几点:
    – 导入正则表达式库 import re
    – input()函数用于用户输入
    – 定义一个函数
    – 函数需要包含正则表达式对象及判定条件
    – while循环重复输入,重复调用函数进行判定

  • 着重分析强口令的三个条件
    – 条件一:长度不少于8个字符。使用点-星(.*)匹配所有字符,加上括号形成单独的分组,至少8个字符采用花括号{}匹配特定次数,{8,}。
    – 条件二:同时包含大小写。同时包含,即匹配至少一次或多次采用+,加号。大写小写字符针对英文,因此采用方括号[],自定义字符分类。[a-z]+[A-Z]
    –条件三:至少含有一个数字。至少的含义依旧是匹配一次或多次,采用加号,+,。数字用方括号自定义字符分类[0-9]。+[0-9]

以下是代码

import re
print("强口令要求:字符串长度不少于8个,同时包含大小写,且至少含有一位数字。")
strongStr = input("请输入一个强口令:")

def strongPassword(str): #定义正则表达式函数
  lengthRex = re.compile(r'(.*){8,}[a-z]+[A-Z]+[0-9]') # 创建正则表达式对象
  if lengthRex.search(str) == None: #如果字符串str中没有找到该正则表达式模式,search()方法则返回None
    return False
  if lengthRex.search(str) == True:
    return True

while strongPassword(strongStr) == False: #判断函数返回值是否为False,循环调用函数strongPassword()
  print('口令强度不够!请重新输入:')
  strongStr = input() #重新输入更新字符变量
  strongPassword(strongStr)#再次调用函数
else:
  print('Nice!强口令强度足够,可以使用!')

输出结果

在这里插入图片描述

PS:这里再为大家提供两款相关在线工具供大家参考使用:

密码安全性在线检测:
http://tools.jb51.net/password/my_password_safe

高强度密码生成器:
http://tools.jb51.net/password/CreateStrongPassword

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • 基于Python实现一个图片压缩工具

    基于Python实现一个图片压缩工具

    图片压缩是在保持图像质量的同时减小图像文件大小的过程,本文将学习如何使用Python来实现一个简单但功能强大的图片压缩工具,以及如何在不同情境下进行图片压缩,希望对大家有所帮助
    2024-01-01
  • python中如何实现径向基核函数

    python中如何实现径向基核函数

    这篇文章主要介绍了python中如何实现径向基核函数问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • pandas把dataframe转成Series,改变列中值的类型方法

    pandas把dataframe转成Series,改变列中值的类型方法

    下面小编就为大家分享一篇pandas把dataframe转成Series,改变列中值的类型方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • pyqt5实现俄罗斯方块游戏

    pyqt5实现俄罗斯方块游戏

    这篇文章主要介绍了pyqt5实现俄罗斯方块游戏,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • python多线程爬取西刺代理的示例代码

    python多线程爬取西刺代理的示例代码

    这篇文章主要介绍了python多线程爬取西刺代理的示例代码,帮助大家更好的理解和学习python的爬虫,感兴趣的朋友可以了解下
    2021-01-01
  • python读取与写入tif图片的完整信息(过程详解)

    python读取与写入tif图片的完整信息(过程详解)

    这篇文章主要介绍了python读取与写入tif图片的完整信息,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • Python 实现Serial 与STM32J进行串口通讯

    Python 实现Serial 与STM32J进行串口通讯

    今天小编就为大家分享一篇Python 实现Serial 与STM32J进行串口通讯,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • python 如何把docker-compose.yaml导入到数据库相关条目里

    python 如何把docker-compose.yaml导入到数据库相关条目里

    这篇文章主要介绍了python 如何把docker-compose.yaml导入到数据库相关条目里?下面小编就为大家介绍一下实现方式,一起跟随小编过来看看吧
    2021-01-01
  • Pygame Rect区域位置的使用(图文)

    Pygame Rect区域位置的使用(图文)

    在 Pygame 中我们使用 Rect() 方法来创建一个指定位置,大小的矩形区域。本文主要就来介绍一下如何使用,具有一定的参考价值,感兴趣的可以了解一下
    2021-11-11
  • 详解Python 使用 selenium 进行自动化测试或者协助日常工作

    详解Python 使用 selenium 进行自动化测试或者协助日常工作

    这篇文章主要介绍了Python 使用 selenium 进行自动化测试 或者协助日常工作,我们可以使用 selenium 来帮助我们进行自动化的 Web 测试,也可以通过 selenium 操作浏览器做一些重复的,简单的事情,来减轻我们的工作
    2021-09-09

最新评论