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中DOM方法的动态性
Apr 11 Python
实例讲解Python中SocketServer模块处理网络请求的用法
Jun 28 Python
Python实现好友全头像的拼接实例(推荐)
Jun 24 Python
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
Jan 10 Python
将pip源更换到国内镜像的详细步骤
Apr 07 Python
python pandas获取csv指定行 列的操作方法
Jul 12 Python
python异步编程 使用yield from过程解析
Sep 25 Python
python 调试冷知识(小结)
Nov 11 Python
Python常用编译器原理及特点解析
Mar 23 Python
通过Python实现Payload分离免杀过程详解
Jul 13 Python
python代码实现备忘录案例讲解
Jul 26 Python
Python集合set()使用的方法详解
Mar 18 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
用文本文件制作留言板提示(上)
2006/10/09 PHP
php面向对象全攻略 (十) final static const关键字的使用
2009/09/30 PHP
PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法
2014/08/28 PHP
thinkPHP框架实现的无限回复评论功能示例
2018/06/09 PHP
PHP大文件切割上传并带进度条功能示例
2019/07/01 PHP
JQuery读取XML文件数据并显示的实现代码
2009/12/16 Javascript
jQuery之$(document).ready()使用介绍
2012/04/05 Javascript
javascript中常用编程知识
2013/04/08 Javascript
按下Enter焦点移至下一个控件的实现js代码
2013/12/11 Javascript
javascript将浮点数转换成整数的三个方法
2014/06/23 Javascript
Javascript中的方法链(Method Chaining)介绍
2015/03/15 Javascript
jQuery链式调用与show知识浅析
2016/05/11 Javascript
JS中的三个循环小结
2017/06/20 Javascript
JavaScript方法_动力节点Java学院整理
2017/06/28 Javascript
vue-infinite-loading2.0 中文文档详解
2018/04/08 Javascript
通过函数作用域和块级作用域看javascript的作用域链
2018/08/05 Javascript
vue组件中iview的modal组件爬坑问题之modal的显示与否应该是使用v-show
2019/04/12 Javascript
node.js实现带进度条的多文件上传
2020/03/27 Javascript
vue点击自增和求和的实例代码
2019/11/06 Javascript
vue监听dom大小改变案例
2020/07/29 Javascript
用python实现的可以拷贝或剪切一个文件列表中的所有文件
2009/04/30 Python
Python的Django REST框架中的序列化及请求和返回
2016/04/11 Python
Python排序搜索基本算法之插入排序实例分析
2017/12/11 Python
CentOS7.3编译安装Python3.6.2的方法
2018/01/22 Python
利用Python yagmail三行代码实现发送邮件
2018/05/11 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
2019/01/11 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
2020/02/25 Python
利用Python如何实时检测自身内存占用
2020/05/09 Python
香港中原电器网上商店:Chung Yuen
2019/06/26 全球购物
社区学习十八大感想
2014/01/22 职场文书
《三袋麦子》教学反思
2014/03/02 职场文书
片区教研活动总结
2014/07/02 职场文书
IT工程师岗位职责
2014/07/04 职场文书
检讨书大全
2015/01/27 职场文书
CSS3 菱形拼图实现只旋转div 背景图片不旋转功能
2021/03/30 HTML / CSS
使用Ajax实现进度条的绘制
2022/04/07 Javascript