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 07 Python
Python装饰器实现几类验证功能做法实例
May 18 Python
Python中pygal绘制雷达图代码分享
Dec 07 Python
Python简单实现socket信息发送与监听功能示例
Jan 03 Python
Flask框架响应、调度方法和蓝图操作实例分析
Jul 24 Python
Django保护敏感信息的方法示例
May 09 Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
Jun 19 Python
Python TKinter如何自动关闭主窗口
Feb 26 Python
浅谈python多线程和多线程变量共享问题介绍
Apr 17 Python
浅析python 动态库m.so.1.0错误问题
May 09 Python
自定义Django_rest_framework_jwt登陆错误返回的解决
Oct 18 Python
为2021年的第一场雪锦上添花:用matplotlib绘制雪花和雪景
Jan 05 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 setcookie() cannot modify header information 的解决方法
2009/01/09 PHP
php入门学习知识点七 PHP函数的基本应用
2011/07/14 PHP
PHP登陆后跳转到登陆前页面实现思路及代码
2014/01/17 PHP
php二分查找二种实现示例
2014/03/12 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
2014/06/19 PHP
ThinkPHP中__initialize()和类的构造函数__construct()用法分析
2014/11/29 PHP
PHP使用mkdir创建多级目录的方法
2015/12/22 PHP
使用phpQuery获取数组的实例
2017/03/13 PHP
php封装单文件上传到数据库(路径)
2017/10/15 PHP
Laravel中为什么不使用blpop取队列详析
2018/08/01 PHP
javascript 表单验证常见正则
2009/09/28 Javascript
快速解决FusionCharts联动的中文乱码问题
2013/12/04 Javascript
浮动的div自适应居中显示的js代码
2013/12/23 Javascript
Thinkphp模板没有解析直接原样输出的解决方法
2014/10/31 Javascript
jQuery实现平滑滚动到指定锚点的方法
2015/03/20 Javascript
vue-cli的webpack模板项目配置文件分析
2017/04/01 Javascript
node.js中实现kindEditor图片上传功能的方法教程
2017/04/26 Javascript
bootstrap treeview 扩展addNode方法动态添加子节点的方法
2017/11/21 Javascript
Vue三种常用传值示例(父传子、子传父、非父子)
2018/07/24 Javascript
利用vue重构有赞商城的思路以及总结整理
2019/02/21 Javascript
使用express来代理服务的方法
2019/06/21 Javascript
原生js实现针对Dom节点的CRUD操作示例
2019/08/26 Javascript
python网络编程学习笔记(二):socket建立网络客户端
2014/06/09 Python
用Python制作简单的朴素基数估计器的教程
2015/04/01 Python
Python之os操作方法(详解)
2017/06/15 Python
解决python中无法自动补全代码的问题
2018/12/04 Python
Python docx库用法示例分析
2019/02/16 Python
python找出因数与质因数的方法
2019/07/25 Python
python函数enumerate,operator和Counter使用技巧实例小结
2020/02/22 Python
tensorflow安装成功import tensorflow 出现问题
2020/04/16 Python
Django的ListView超详细用法(含分页paginate)
2020/05/21 Python
python读取excel进行遍历/xlrd模块操作
2020/07/12 Python
澳大利亚家居用品零售商:Harris Scarfe
2020/10/10 全球购物
项目投资意向书
2014/04/01 职场文书
小学优秀教师事迹材料
2014/12/16 职场文书
联欢会开场白
2015/06/01 职场文书