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 相关文章推荐
python3使用tkinter实现ui界面简单实例
Jan 10 Python
Python调用C/C++动态链接库的方法详解
Jul 22 Python
跟老齐学Python之传说中的函数编写条规
Oct 11 Python
Python求两个文本文件以行为单位的交集、并集与差集的方法
Jun 17 Python
Python使用QQ邮箱发送Email的方法实例
Feb 09 Python
python实现简易通讯录修改版
Mar 13 Python
tensorflow: variable的值与variable.read_value()的值区别详解
Jul 30 Python
python实现二维插值的三维显示
Dec 17 Python
PyCharm搭建Spark开发环境实现第一个pyspark程序
Jun 13 Python
python自动保存百度盘资源到百度盘中的实例代码
Aug 26 Python
python自动化测试三部曲之request+django实现接口测试
Oct 07 Python
GitHub上值得推荐的8个python 项目
Oct 30 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
Oracle Faq(Oracle的版本)
2006/10/09 PHP
PHP文件锁函数flock()详细介绍
2014/11/18 PHP
PHP中捕获超时事件的方法实例
2015/02/12 PHP
详谈php中 strtr 和 str_replace 的效率问题
2017/05/14 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
2017/09/02 PHP
PHP实现动态创建XML文档的方法
2018/03/30 PHP
PHP后台备份MySQL数据库的源码实例
2019/03/18 PHP
MooBox 基于Mootools的对话框插件
2012/01/20 Javascript
javascript 基础篇4 window对象,DOM
2012/03/14 Javascript
深入理解javascript学习笔记(一) 编写高质量代码
2012/08/09 Javascript
js模拟点击事件实现代码
2012/11/06 Javascript
jQuery垂直多级导航菜单代码分享
2015/08/18 Javascript
jquery带动画效果幻灯片特效代码
2015/08/27 Javascript
动态的9*9乘法表效果的实现代码
2016/05/16 Javascript
jQuery页面元素动态添加后绑定事件丢失方法,非 live
2016/06/16 Javascript
一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]
2016/12/01 Javascript
解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
2017/06/05 Javascript
vue-cli 打包使用history模式的后端配置实例
2018/09/20 Javascript
vue中的mvvm模式讲解
2019/01/31 Javascript
浅谈Vue页面级缓存解决方案feb-alive(上)
2019/04/14 Javascript
使用异步组件优化Vue应用程序的性能
2019/04/28 Javascript
javascript网页随机点名实现过程解析
2019/10/15 Javascript
Python中无限元素列表的实现方法
2014/08/18 Python
Python实现的石头剪子布代码分享
2014/08/22 Python
Python3实现的爬虫爬取数据并存入mysql数据库操作示例
2018/06/06 Python
俄罗斯花园种植材料批发和零售网上商店:Беккер
2019/07/22 全球购物
MyBag中文网:英国著名的时尚包袋电商零售网站
2020/07/31 全球购物
新媒传信软件测试面试题
2013/02/24 面试题
培训演讲稿范文
2014/01/12 职场文书
审计主管岗位职责
2014/01/31 职场文书
可口可乐广告词
2014/03/20 职场文书
优秀学生党员先进事迹材料
2014/05/29 职场文书
2014年员工工作总结范文
2014/11/18 职场文书
ConstraintValidator类如何实现自定义注解校验前端传参
2021/06/18 Java/Android
python 使用tkinter与messagebox写界面和弹窗
2022/03/20 Python
volatile保证可见性及重排序方法
2022/08/05 Java/Android