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  __getattr__与__setattr__使用方法
Sep 06 Python
Python中的迭代器漫谈
Feb 03 Python
用Python计算三角函数之acos()方法的使用
May 15 Python
python实现Adapter模式实例代码
Feb 09 Python
在VS Code上搭建Python开发环境的方法
Apr 06 Python
对python中array.sum(axis=?)的用法介绍
Jun 28 Python
Python 单元测试(unittest)的使用小结
Nov 14 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
Feb 13 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
Feb 25 Python
用Python 爬取猫眼电影数据分析《无名之辈》
Jul 24 Python
python游戏开发之pygame实现接球小游戏
Apr 22 Python
python blinker 信号库
May 04 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事务处理实例详解
2014/07/11 PHP
PHP session 会话处理函数
2016/06/06 PHP
利用404错误页面实现UrlRewrite的实现代码
2008/08/20 Javascript
基于jQuery实现点击同时更改两个iframe的网址
2010/07/01 Javascript
JavaScript高级程序设计 客户端存储学习笔记
2011/09/10 Javascript
js中eval详解
2012/03/30 Javascript
Function.prototype.bind用法示例
2013/09/16 Javascript
简单js代码实现selece二级联动(推荐)
2014/02/18 Javascript
javascript 小数取整简单实现方式
2014/05/30 Javascript
学习Bootstrap滚动监听 附调用方法
2016/07/02 Javascript
基于jQuery实现的查看全文功能【实用】
2016/12/11 Javascript
jquery实现拖动效果(代码分享)
2017/01/25 Javascript
你可能不知道的JSON.stringify()详解
2017/08/17 Javascript
node实现定时发送邮件的示例代码
2017/08/26 Javascript
基于jQuery实现Ajax验证用户名是否可用实例
2018/03/25 jQuery
Echarts之悬浮框中的数据排序问题
2018/11/08 Javascript
vue favicon设置以及动态修改favicon的方法
2018/12/21 Javascript
angular6开发steps步骤条组件
2019/07/04 Javascript
[50:24]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
基于python编写的微博应用
2014/10/17 Python
Python中用startswith()函数判断字符串开头的教程
2015/04/07 Python
pandas dataframe添加表格框线输出的方法
2019/02/08 Python
Python模块汇总(常用第三方库)
2019/10/07 Python
python垃圾回收机制(GC)原理解析
2019/12/30 Python
美国最流行的男士时尚网站:Touch of Modern
2018/02/05 全球购物
Lookfantastic瑞典:英国知名美妆购物网站
2018/04/06 全球购物
与世界上最好的跑步专业品牌合作:Fleet Feet
2019/03/22 全球购物
澳大利亚当地社区首选的光学商店:1001 Optical
2019/08/24 全球购物
介绍一下结构化程序设计方法和面向对象程序设计方法的区别
2012/06/27 面试题
旅游与酒店管理的自我评价分享
2013/11/03 职场文书
高中军训感言200字
2014/02/23 职场文书
社区关爱留守儿童活动方案
2014/08/22 职场文书
企业法人授权委托书
2014/09/25 职场文书
教师群众路线学习心得体会
2014/11/04 职场文书
饭店服务员岗位职责
2015/02/09 职场文书
2019年农民幸福观调查的实践感悟
2019/12/19 职场文书