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 27 Python
python网络编程学习笔记(九):数据库客户端 DB-API
Jun 09 Python
python使用mailbox打印电子邮件的方法
Apr 30 Python
Python绘制KS曲线的实现方法
Aug 13 Python
python爬虫中多线程的使用详解
Sep 23 Python
From CSV to SQLite3 by python 导入csv到sqlite实例
Feb 14 Python
浅谈Python中的字符串
Jun 10 Python
Python常用类型转换实现代码实例
Jul 28 Python
详解python程序中的多任务
Sep 16 Python
Django ModelForm组件原理及用法详解
Oct 12 Python
pycharm 如何取消连按两下shift出现的全局搜索
Jan 15 Python
Python实战之用tkinter库做一个鼠标模拟点击器
Apr 27 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
Http 1.1 Etag 与 Last-Modified提高php效率
2008/01/10 PHP
php扩展ZF――Validate扩展
2008/01/10 PHP
php实现用于计算执行时间的类实例
2015/04/18 PHP
PHP MSSQL 分页实例
2016/04/13 PHP
php版阿里云OSS图片上传类详解
2016/12/01 PHP
PHP实现的自定义图像居中裁剪函数示例【测试可用】
2017/08/11 PHP
PHP之认识(二)关于Traits的用法详解
2019/04/11 PHP
js 延迟加载 改变JS的位置加快网页加载速度
2012/12/11 Javascript
jQuery aminate方法定位到页面具体位置
2013/12/26 Javascript
jquery弹窗插件colorbox绑定动态生成元素的方法
2014/06/20 Javascript
JavaScript类继承及实例化的方法
2015/07/25 Javascript
js实现select下拉框菜单
2015/12/08 Javascript
第五篇Bootstrap 排版
2016/06/21 Javascript
Bootstrap中的Dropdown下拉菜单更改为悬停(hover)触发
2016/08/31 Javascript
Javascript将字符串日期格式化为yyyy-mm-dd的方法
2016/10/27 Javascript
对象不支持indexOf属性或方法的解决方法(必看)
2017/05/28 Javascript
js实现点击生成随机div
2020/01/16 Javascript
JS script脚本中async和defer区别详解
2020/06/24 Javascript
JS使用Chrome浏览器实现调试线上代码
2020/07/23 Javascript
vue-simple-uploader上传成功之后的response获取代码
2020/09/07 Javascript
Python的Tornado框架的异步任务与AsyncHTTPClient
2016/06/27 Python
python笔记之mean()函数实现求取均值的功能代码
2019/07/05 Python
Django 大文件下载实现过程解析
2019/08/01 Python
Python调用Windows API函数编写录音机和音乐播放器功能
2020/01/05 Python
python实现俄罗斯方块小游戏
2020/04/24 Python
python 获取计算机的网卡信息
2021/02/18 Python
泰海淘:泰国king Power王权免税集团旗下跨境海淘综合型电商
2020/07/26 全球购物
团员的自我评价
2013/12/01 职场文书
感恩之星事迹材料
2014/05/03 职场文书
会计求职自荐信
2014/06/20 职场文书
2014学校领导四风问题对照检查材料思想汇报
2014/09/22 职场文书
村党支部群众路线教育实践活动对照检查材料
2014/09/26 职场文书
保卫工作个人总结
2015/03/03 职场文书
学校青年志愿者活动总结
2015/05/06 职场文书
javascript对象3个属性特征
2021/11/17 Javascript
Python绘制散点图之可视化神器pyecharts
2022/07/07 Python