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 相关文章推荐
Pandas中把dataframe转成array的方法
Apr 13 Python
python pycurl验证basic和digest认证的方法
May 02 Python
Python实现使用卷积提取图片轮廓功能示例
May 12 Python
解决python3 安装完Pycurl在import pycurl时报错的问题
Oct 15 Python
python装饰器常见使用方法分析
Jun 26 Python
python logging模块的使用总结
Jul 09 Python
python实现日志按天分割
Jul 22 Python
已安装tensorflow-gpu,但keras无法使用GPU加速的解决
Feb 07 Python
使用Tensorboard工具查看Loss损失率
Feb 15 Python
详解基于python的图像Gabor变换及特征提取
Oct 26 Python
详解pandas映射与数据转换
Jan 22 Python
Python创建SQL数据库流程逐步讲解
Sep 23 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
制作美丽的拉花
2021/03/03 冲泡冲煮
win7 64位系统 配置php最新版开发环境(php+Apache+mysql)
2014/08/15 PHP
使用PHP生成PDF方法详解
2015/01/23 PHP
利用php操作memcache缓存的基础方法示例
2017/08/02 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
javascript 得到变量类型的函数
2010/05/19 Javascript
window.open关于浏览器拦截问题分析及解决方法
2013/02/05 Javascript
ExtJs纵坐标值重复问题的解决方法
2014/02/27 Javascript
jQuery添加删除DOM元素方法详解
2016/01/18 Javascript
Node.js连接MongoDB数据库产生的问题
2017/02/08 Javascript
js eval函数使用,js对象和字符串互转实例
2017/03/06 Javascript
JS实现点击循环切换显示内容的方法
2017/10/19 Javascript
vue动画之点击按钮往上渐渐显示出来的实例
2018/09/29 Javascript
如何编写一个 Webpack Loader的实现
2020/10/18 Javascript
一步步解析Python斗牛游戏的概率
2016/02/12 Python
virtualenv实现多个版本Python共存
2017/08/21 Python
微信跳一跳自动运行python脚本
2018/01/08 Python
python处理大日志文件
2019/07/23 Python
TensorFlow学习之分布式的TensorFlow运行环境
2020/02/05 Python
python实现随机加减法生成器
2020/02/24 Python
Python CategoricalDtype自定义排序实现原理解析
2020/09/11 Python
CSS3过渡transition效果实例介绍
2016/05/03 HTML / CSS
HTML5的download属性详细介绍和使用实例
2014/04/23 HTML / CSS
Madewell美德威尔美国官网:美国休闲服饰品牌
2016/11/25 全球购物
Hunter Boots美国官方网站:赫特威灵顿雨靴
2018/06/16 全球购物
英国户外装备商店:Ultimate Outdoors
2019/05/07 全球购物
Mountain Warehouse波兰官方网站:英国户外品牌
2019/08/29 全球购物
Kickers鞋英国官网:男士、女士和儿童鞋
2021/03/08 全球购物
动漫专业高职生职业生涯规划书
2014/02/15 职场文书
促销活动总结
2014/04/28 职场文书
感恩父母的演讲稿
2014/05/06 职场文书
代办委托书怎么写
2014/08/01 职场文书
庆国庆活动总结
2014/08/28 职场文书
自愿解除劳动合同协议书
2014/09/11 职场文书
个人作风建设自查报告
2014/10/22 职场文书
Spring Boot项目传参校验的最佳实践指南
2022/04/05 Java/Android