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 相关文章推荐
Django中处理出错页面的方法
Jul 15 Python
python实现对指定字符串补足固定长度倍数截断输出的方法
Nov 15 Python
python中实现控制小数点位数的方法
Jan 24 Python
对Python之gzip文件读写的方法详解
Feb 08 Python
python五子棋游戏的设计与实现
Jun 18 Python
如何为Python终端提供持久性历史记录
Sep 03 Python
python 实现单通道转3通道
Dec 03 Python
Tensorflow读取并输出已保存模型的权重数值方式
Jan 04 Python
python基于event实现线程间通信控制
Jan 13 Python
python实现梯度法 python最速下降法
Mar 24 Python
解决Jupyter无法导入已安装的 module问题
Apr 17 Python
windows下的pycharm安装及其设置中文菜单
Apr 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
如何给phpadmin一个保护
2006/10/09 PHP
php对称加密算法示例
2014/05/07 PHP
PHP输出九九乘法表代码实例
2015/03/27 PHP
php比较相似字符串的方法
2015/06/05 PHP
PHP+redis实现添加处理投票的方法
2015/11/14 PHP
浅谈PHP的$_SERVER[SERVER_NAME]
2017/02/04 PHP
替换php字符串中的单引号为双引号的方法
2017/02/16 PHP
javascript实现的在当前窗口中漂浮框的代码
2010/03/15 Javascript
jQuery EasyUI API 中文文档 - ValidateBox验证框
2011/10/06 Javascript
js实现网站首页图片滚动显示
2013/02/04 Javascript
jquery如何实现锚点链接之间的平滑滚动
2013/12/02 Javascript
js实现弹窗插件功能实例代码分享
2013/12/12 Javascript
使用jquery菜单插件HoverTree仿京东无限级菜单
2014/12/18 Javascript
jQuery实现友好的轮播图片特效
2015/01/12 Javascript
innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解
2015/03/13 Javascript
coffeescript使用的方式汇总
2015/08/05 Javascript
Node.js的Mongodb使用实例
2016/12/30 Javascript
angularjs点击图片放大实现上传图片预览
2017/02/24 Javascript
Vue中div contenteditable 的光标定位方法
2018/08/25 Javascript
使用jquery Ajax实现上传附件功能
2018/10/23 jQuery
JavaScript经典案例之简易计算器
2020/08/24 Javascript
[03:51]吞吞映像 每周精彩击杀top10第二弹
2014/06/25 DOTA
python中readline判断文件读取结束的方法
2014/11/08 Python
利用Python命令行传递实例化对象的方法
2016/11/02 Python
Python程序中设置HTTP代理
2016/11/06 Python
Rockport乐步美国官网:风靡美国的白宫鞋
2016/11/24 全球购物
世界汽车零件:World Car Parts
2019/09/04 全球购物
德国富尔达运动鞋店:43einhalb
2020/12/25 全球购物
网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?
2016/03/27 面试题
北京振戎融通Java面试题
2015/09/03 面试题
文职个人求职信范文
2013/09/23 职场文书
入党自荐书范文
2015/03/05 职场文书
2016年法制宣传月活动总结
2016/04/01 职场文书
小学语文的各类谚语(70首)
2019/08/15 职场文书
Python List remove()实例用法详解
2021/08/02 Python
基于MySql验证的vsftpd虚拟用户
2021/11/07 MySQL