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 相关文章推荐
Python3基础之基本运算符概述
Aug 13 Python
详解Python中使用base64模块来处理base64编码的方法
Jul 01 Python
JSON文件及Python对JSON文件的读写操作
Oct 07 Python
Python WEB应用部署的实现方法
Jan 02 Python
Python3实现的反转单链表算法示例
Mar 08 Python
Python datetime包函数简单介绍
Aug 28 Python
python-tornado的接口用swagger进行包装的实例
Aug 29 Python
django中间键重定向实例方法
Nov 10 Python
python matplotlib:plt.scatter() 大小和颜色参数详解
Apr 14 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
Jun 29 Python
Python音乐爬虫完美绕过反爬
Aug 30 Python
python区块链持久化和命令行接口实现简版
May 25 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
Notice: Undefined index: page in E:\PHP\test.php on line 14
2010/11/02 PHP
php随机生成数字字母组合的方法
2015/03/18 PHP
Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
2016/12/27 PHP
使用vs code编辑调试php配置的方法
2019/01/29 PHP
PHP registerXPathNamespace()函数讲解
2019/02/03 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
2021/02/26 PHP
初识JQuery 实例一(first)
2011/03/16 Javascript
终于解决了IE8不支持数组的indexOf方法
2013/04/03 Javascript
jquery中选择块并改变属性值的方法
2013/07/31 Javascript
JavaScript解析URL参数示例代码
2013/08/12 Javascript
JavaScript数据类型检测代码分享
2015/01/26 Javascript
JavaScrip数组删除特定元素的几种方法总结
2017/09/06 Javascript
jQuery实现html双向绑定功能示例
2017/10/09 jQuery
jQuery zTree 异步加载添加子节点重复问题
2017/11/29 jQuery
微信小程序登录按钮遮罩浮层效果的实现方法
2018/12/16 Javascript
vue轻量级框架无法获取到vue对象解决方法
2019/05/12 Javascript
Vue中img的src是动态渲染时不显示的解决
2019/11/14 Javascript
Javascript异步执行不按顺序解决方案
2020/04/30 Javascript
js实现鼠标点击飘爱心效果
2020/08/19 Javascript
[48:21]林俊杰圣堂刺客超神杀戮秀
2014/10/29 DOTA
黑科技 Python脚本帮你找出微信上删除你好友的人
2016/01/07 Python
python字符串连接方法分析
2016/04/12 Python
python多进程重复加载的解决方式
2019/12/13 Python
pycharm 激活码及使用方式的详细教程
2020/05/12 Python
python使用建议与技巧分享(二)
2020/08/17 Python
详解pycharm配置python解释器的问题
2020/10/15 Python
利用CSS3的transform做的动态时钟效果
2011/09/21 HTML / CSS
webView加载html图片遇到的问题解决
2019/10/08 HTML / CSS
大学总结自我鉴定
2014/01/18 职场文书
《孔繁森》教学反思
2014/04/17 职场文书
出售房屋委托书范本
2014/09/24 职场文书
2016年情人节广告语
2016/01/28 职场文书
施工安全责任协议书
2016/03/23 职场文书
2019运动会广播加油稿汇总
2019/08/21 职场文书
创业计划书之情侣餐厅
2019/09/29 职场文书
redis内存空间效率问题的深入探究
2021/05/17 Redis