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


Posted in Python onFebruary 29, 2020

本文实例讲述了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!强口令强度足够,可以使用!')

输出结果

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

Python 相关文章推荐
Python编程实现两个文件夹里文件的对比功能示例【包含内容的对比】
Jun 20 Python
解决python3爬虫无法显示中文的问题
Apr 12 Python
Python实现合并同一个文件夹下所有txt文件的方法示例
Apr 26 Python
python实现列表中最大最小值输出的示例
Jul 09 Python
Python爬虫抓取技术的一些经验
Jul 12 Python
python3 下载网络图片代码实例
Aug 27 Python
Django项目使用ckeditor详解(不使用admin)
Dec 17 Python
Python imutils 填充图片周边为黑色的实现
Jan 19 Python
tensorboard显示空白的解决
Feb 15 Python
python如何更新包
Jun 11 Python
Pycharm无法打开双击没反应的问题及解决方案
Aug 17 Python
matplotlib 范围选区(SpanSelector)的使用
Feb 24 Python
Python编程快速上手——strip()函数的正则表达式实现方法分析
Feb 29 #Python
python通用读取vcf文件的类(复制粘贴即可用)
Feb 29 #Python
Python编程快速上手——疯狂填词程序实现方法分析
Feb 29 #Python
Python使用GitPython操作Git版本库的方法
Feb 29 #Python
如何使用python代码操作git代码
Feb 29 #Python
使用 Python 遍历目录树的方法
Feb 29 #Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
Feb 29 #Python
You might like
回首过去10年中最搞笑的10部动漫,哪一部让你节操尽碎?
2020/03/03 日漫
php 模拟get_headers函数的代码示例
2013/04/27 PHP
Codeigniter实现多文件上传并创建多个缩略图
2014/06/12 PHP
php实现的数字验证码及数字运算验证码
2015/07/30 PHP
php常量详细解析
2015/10/27 PHP
php实现三级级联下拉框
2016/04/17 PHP
PHP5.0 TIDY_PARSE_FILE缓冲区溢出漏洞的解决方案
2018/10/14 PHP
php判断电子邮件是否正确方法
2018/12/04 PHP
PHP实现的微信公众号扫码模拟登录功能示例
2019/05/30 PHP
jquery实现勾选复选框触发事件给input赋值
2015/02/01 Javascript
javascript实现动态表头及表列的展现方法
2015/07/14 Javascript
直接拿来用的15个jQuery代码片段
2015/09/23 Javascript
JS组件系列之Bootstrap Icon图标选择组件
2016/01/28 Javascript
简单实现js选项卡切换效果
2016/02/03 Javascript
JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
2016/11/10 Javascript
vue父子组件的数据传递示例
2017/03/07 Javascript
整理一些最近经常遇到的前端面试题
2017/04/25 Javascript
JavaScript的数据类型转换原则(干货)
2018/03/15 Javascript
JS查找孩子节点简单示例
2019/07/25 Javascript
JS中的算法与数据结构之字典(Dictionary)实例详解
2019/08/20 Javascript
Python splitlines使用技巧
2008/09/06 Python
Python爬取十篇新闻统计TF-IDF
2018/01/03 Python
Python数据类型之Number数字操作实例详解
2019/05/08 Python
python matplotlib库绘制条形图练习题
2019/08/10 Python
使用python客户端访问impala的操作方式
2020/03/28 Python
Python pip安装第三方库实现过程解析
2020/07/09 Python
python解包概念及实例
2021/02/17 Python
html5使用canvas画一条线
2014/12/15 HTML / CSS
教师档案管理制度
2014/01/23 职场文书
怎样写好自我评价呢?
2014/02/16 职场文书
保安部任务及岗位职责
2014/02/25 职场文书
2014年教务处工作总结
2014/12/03 职场文书
药品销售内勤岗位职责
2015/04/13 职场文书
甲午风云观后感
2015/06/02 职场文书
结婚主持人致辞
2015/07/28 职场文书
2016年小学党支部创先争优活动总结
2016/04/05 职场文书