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实现博客文章爬虫示例
Feb 26 Python
Python遍历文件夹和读写文件的实现方法
May 10 Python
Python处理Excel文件实例代码
Jun 20 Python
Python Logging 日志记录入门学习
Jun 02 Python
Python基于分析Ajax请求实现抓取今日头条街拍图集功能示例
Jul 19 Python
python中reader的next用法
Jul 24 Python
django ManyToManyField多对多关系的实例详解
Aug 09 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
Mar 17 Python
Python 通过监听端口实现唯一脚本运行方式
May 05 Python
Python-jenkins模块获取jobs的执行状态操作
May 12 Python
python判断是空的实例分享
Jul 06 Python
python 批量将中文名转换为拼音
Feb 07 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
FCKeditor的安装(PHP)
2007/01/13 PHP
mayfish 数据入库验证代码
2010/04/30 PHP
PHP的变量类型和作用域详解
2014/03/12 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
2015/12/18 PHP
PHP学习笔记之session
2018/05/06 PHP
php中数组最简单的使用方法
2020/12/27 PHP
js左右弹性滚动对联广告代码分享
2014/02/19 Javascript
javascript文件中引用依赖的js文件的方法
2014/03/17 Javascript
黑帽seo劫持程序,js劫持搜索引擎代码
2015/09/15 Javascript
Javascript实现图片轮播效果(一)让图片跳动起来
2016/02/17 Javascript
jquery实现下拉框功能效果【实例代码】
2016/05/06 Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
2016/10/08 Javascript
教你用十行node.js代码读取docx的文本
2017/03/08 Javascript
JS基于正则表达式的替换操作(replace)用法示例
2017/04/28 Javascript
使用淘宝镜像cnpm安装Vue.js的图文教程
2018/05/17 Javascript
Vue自定义指令封装节流函数的方法示例
2018/07/09 Javascript
浅谈Vue3 Composition API如何替换Vue Mixins
2020/04/29 Javascript
jQuery实现倒计时功能完整示例
2020/06/01 jQuery
Pyramid添加Middleware的方法实例
2013/11/27 Python
tensorflow 输出权重到csv或txt的实例
2018/06/14 Python
Linux 修改Python命令的方法示例
2018/12/03 Python
python GUI库图形界面开发之PyQt5 MDI(多文档窗口)QMidArea详细使用方法与实例
2020/03/05 Python
Notino意大利:购买香水和化妆品
2018/11/14 全球购物
Stokke美国官方网店:高级儿童家具、推车、汽车座椅和配件
2020/06/06 全球购物
开工庆典邀请函范文
2014/01/16 职场文书
我的五年职业生涯规划
2014/01/23 职场文书
家长对老师的感言
2014/03/11 职场文书
道德大讲堂实施方案
2014/05/14 职场文书
学习十八届四中全会精神思想汇报
2014/10/23 职场文书
2014年机关党委工作总结
2014/12/11 职场文书
申报材料格式
2014/12/30 职场文书
数学教师个人总结
2015/02/06 职场文书
年度考核登记表个人总结
2015/03/06 职场文书
个人年终总结结尾
2015/03/06 职场文书
盲山观后感
2015/06/11 职场文书
MySQL 1130异常,无法远程登录解决方案详解
2021/08/23 MySQL