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的re模块正则表达式操作
May 25 Python
详解appium+python 启动一个app步骤
Dec 20 Python
浅谈利用numpy对矩阵进行归一化处理的方法
Jul 11 Python
解决python中使用PYQT时中文乱码问题
Jun 17 Python
Python字典生成式、集合生成式、生成器用法实例分析
Jan 07 Python
tensorflow下的图片标准化函数per_image_standardization用法
Jun 30 Python
Scrapy项目实战之爬取某社区用户详情
Sep 17 Python
Python特殊属性property原理及使用方法解析
Oct 09 Python
Python中Yield的基本用法
Oct 18 Python
python使用selenium爬虫知乎的方法示例
Oct 28 Python
python3中celery异步框架简单使用+守护进程方式启动
Jan 20 Python
Python 中如何使用 virtualenv 管理虚拟环境
Jan 21 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
写php分页时出现的Fatal error的解决方法
2011/04/18 PHP
探讨php define()函数及defined()函数使用详解
2013/06/09 PHP
php中time()和mktime()方法的区别
2013/09/28 PHP
php+mysqli实现将数据库中一张表信息打印到表格里的方法
2015/01/28 PHP
PHP stream_context_create()函数的使用示例
2015/05/12 PHP
PHP性能优化大全(php.ini)
2016/05/20 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
jQuery 使用个人心得
2009/02/26 Javascript
JavaScript判断DOM何时加载完毕的技巧
2012/11/11 Javascript
javascript检测页面是否缩放的小例子
2013/05/16 Javascript
javascript的parseFloat()方法精度问题探讨
2013/11/26 Javascript
Node.js中使用Buffer编码、解码二进制数据详解
2014/08/16 Javascript
基于javascript实现右下角浮动广告效果
2016/01/08 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
2017/03/13 Javascript
vue系列之requireJs中引入vue-router的方法
2018/07/18 Javascript
Vue实现的父组件向子组件传值功能示例
2019/01/19 Javascript
原生JavaScript实现拖动校验功能
2020/09/29 Javascript
Python获取运行目录与当前脚本目录的方法
2015/06/01 Python
python中argparse模块用法实例详解
2015/06/03 Python
python 3利用BeautifulSoup抓取div标签的方法示例
2017/05/28 Python
Python文件和流(实例讲解)
2017/09/12 Python
django1.11.1 models 数据库同步方法
2018/05/30 Python
Django跨域请求问题的解决方法示例
2018/06/16 Python
python3.6的venv模块使用详解
2018/08/01 Python
python 操作hive pyhs2方式
2019/12/21 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
2020/02/28 Python
详解Python遍历列表时删除元素的正确做法
2021/01/07 Python
css3实现六边形边框的实例代码
2019/05/24 HTML / CSS
html5视频媒体标签video的使用方法及完整参数说明详解
2019/09/27 HTML / CSS
日本快乐生活方式购物网站:Shop Japan
2018/07/17 全球购物
Bed Bath & Beyond加拿大官网:购买床上用品、浴巾、厨房电器等
2019/10/04 全球购物
最新会计专业求职信范文
2014/01/28 职场文书
主题婚礼策划方案
2014/02/10 职场文书
档案工作汇报材料
2014/08/21 职场文书
2014年检验科工作总结
2014/11/22 职场文书
SpringBoot使用AOP实现统计全局接口访问次数详解
2022/06/16 Java/Android