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算法学习之计数排序实例
Dec 18 Python
Python的SQLalchemy模块连接与操作MySQL的基础示例
Jul 11 Python
python获取网页中所有图片并筛选指定分辨率的方法
Mar 31 Python
Anaconda 离线安装 python 包的操作方法
Jun 11 Python
无法使用pip命令安装python第三方库的原因及解决方法
Jun 12 Python
使用TensorFlow实现SVM
Sep 06 Python
Django中的用户身份验证示例详解
Aug 07 Python
python中@property和property函数常见使用方法示例
Oct 21 Python
Tensorflow 多线程与多进程数据加载实例
Feb 05 Python
Python中SQLite如何使用
May 27 Python
Python字典dict常用方法函数实例
Nov 09 Python
PyQt QMainWindow的使用示例
Mar 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
php实现两个数组相加的方法
2015/02/17 PHP
让js弹出窗口居前显示的实现方法
2013/07/10 Javascript
巧用replace将文字表情替换为图片
2014/04/17 Javascript
一个小例子解释如何来阻止Jquery事件冒泡
2014/07/17 Javascript
jQuery搜索同辈元素方法
2015/02/10 Javascript
jQuery制作仿Mac Lion OS滚动条效果
2015/02/10 Javascript
jQuery获得子元素个数的方法
2015/04/14 Javascript
jQuery插件ImageDrawer.js实现动态绘制图片动画(附源码下载)
2016/02/25 Javascript
jQuery实现简单的tab标签页效果
2016/09/12 Javascript
浅析BootStrap Treeview的简单使用
2016/10/12 Javascript
elementui的默认样式修改方法
2018/02/23 Javascript
关于在LayUI中使用AJAX提交巨坑记录
2019/10/25 Javascript
微信小程序登陆注册功能的实现代码
2019/12/10 Javascript
JS校验与最终登陆界面功能完整示例
2020/01/13 Javascript
详解JavaScript 高阶函数
2020/09/14 Javascript
[01:32]2016国际邀请赛中国区预选赛IG战队首日赛后采访
2016/06/27 DOTA
使用wxpython实现的一个简单图片浏览器实例
2014/07/10 Python
Windows系统下使用flup搭建Nginx和Python环境的方法
2015/12/25 Python
使用Python的Twisted框架构建非阻塞下载程序的实例教程
2016/05/25 Python
Python错误: SyntaxError: Non-ASCII character解决办法
2017/06/08 Python
使用Python实现windows下的抓包与解析
2018/01/15 Python
Python使用win32 COM实现Excel的写入与保存功能示例
2018/05/03 Python
利用Anaconda简单安装scrapy框架的方法
2018/06/13 Python
5分钟 Pipenv 上手指南
2018/12/20 Python
对python实现二维函数高次拟合的示例详解
2018/12/29 Python
拿来就用!Python批量合并PDF的示例代码
2020/08/10 Python
图解Python中深浅copy(通俗易懂)
2020/09/03 Python
HTML5 Canvas+JS控制电脑或手机上的摄像头实例
2014/05/03 HTML / CSS
澳大利亚旅游网站:Lastminute
2017/08/07 全球购物
环法自行车赛官方商店:Le Tour de France
2017/08/27 全球购物
Camper鞋西班牙官方网上商店:西班牙马略卡岛的鞋类品牌
2019/03/14 全球购物
Brora官网:英国领先的羊绒服装品牌
2019/08/28 全球购物
儿童生日会策划方案
2014/05/15 职场文书
关于有小孩的离婚协议书
2014/10/26 职场文书
趣味运动会简讯
2015/07/20 职场文书
MySQL中varchar和char类型的区别
2021/11/17 MySQL