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的Django框架中的项目进行单元测试的方法
Apr 11 Python
Python随机生成数据后插入到PostgreSQL
Jul 28 Python
Python爬虫实例_城市公交网络站点数据的爬取方法
Jan 10 Python
Python递归实现汉诺塔算法示例
Mar 19 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
Aug 25 Python
Python Django的安装配置教程图文详解
Jul 17 Python
Python根据服务获取端口号的方法
Sep 25 Python
python的列表List求均值和中位数实例
Mar 03 Python
Django中使用Json返回数据的实现方法
Jun 03 Python
音频处理 windows10下python三方库librosa安装教程
Jun 20 Python
Python 操作 MySQL数据库
Sep 18 Python
用python写一个带有gui界面的密码生成器
Nov 06 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代码优化及php相关问题总结
2006/10/09 PHP
解析PHP SPL标准库的用法(遍历目录,查找固定条件的文件)
2013/06/18 PHP
php获取一个变量的名字的方法
2014/09/05 PHP
JavaScript Event学习第八章 事件的顺序
2010/02/07 Javascript
JQuery中的ready函数冲突的解决方法
2010/05/17 Javascript
用JavaScript计算在UTF-8下存储字符串占用字节数
2013/08/08 Javascript
JS批量修改PS中图层名称的方法
2014/01/26 Javascript
不到30行JS代码实现Excel表格的方法
2014/11/15 Javascript
基于JS实现无缝滚动思路及代码分享
2016/06/07 Javascript
JS简单获取及显示当前时间的方法
2016/08/03 Javascript
js中string和number类型互转换技巧(分享)
2016/11/28 Javascript
JavaScript原生节点操作小结
2017/01/17 Javascript
js获取元素下的第一级子元素的方法(推荐)
2017/03/05 Javascript
Angularjs 实现移动端在线测评效果(推荐)
2017/04/05 Javascript
javascript实现二叉树的代码
2017/06/08 Javascript
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
js构造函数创建对象是否加new问题
2018/01/22 Javascript
详解webpack2异步加载套路
2018/09/14 Javascript
echarts实现折线图的拖拽效果
2019/12/19 Javascript
Element Breadcrumb 面包屑的使用方法
2020/07/26 Javascript
用Python编写脚本使IE实现代理上网的教程
2015/04/23 Python
python类:class创建、数据方法属性及访问控制详解
2016/07/25 Python
Python判断两个对象相等的原理
2017/12/12 Python
查看django版本的方法分享
2018/05/14 Python
对pandas中Series的map函数详解
2018/07/25 Python
在Python中,不用while和for循环遍历列表的实例
2019/02/20 Python
Python笔记之观察者模式
2019/11/20 Python
Python自省及反射原理实例详解
2020/07/06 Python
Hotels.com越南:酒店预订
2019/10/29 全球购物
澳大利亚领先的男装零售连锁店:Lowes
2020/08/07 全球购物
纪检干部先进事迹材料
2014/08/23 职场文书
企业党员个人自我评价
2014/09/20 职场文书
六查六看心得体会
2014/10/14 职场文书
销售督导岗位职责
2015/04/10 职场文书
实习报告范文之电话客服岗位
2019/07/26 职场文书
mysql中varchar类型的日期进行比较、排序等操作的实现
2021/11/17 MySQL