后端面试题分享查看测试代码

问题描述

编写一个函数,该函数接受一个字符串作为参数,检查该字符串是否符合密码强度要求, 返回True或False。

要求

密码强度要求如下:

  • 不能小于6个字符
  • 必须出现大写、小写、数字、特殊字符(!@#$%^&*_-) 的组合
  • 不能出现4个连续的字符,比如1234, dcba这样的规则
  • 建议使用正则表达式来实现密码强度检查。

测试代码

查看测试代码

解决思路

  1. 使用正则表达式:正则表达式是一种强大的字符串匹配工具,可以用来检查字符串是否符合特定的模式。我们可以使用正则表达式来检查密码是否符合要求。
  2. 循环检查:我们可以每个条件单独检查,比如检查密码长度、是否包含大写字母、小写字母、数字和特殊字符等。
  3. 避免连续字符:顺序的字符可以通过判断ascii码的差值来实现,如果差值连续为1/-1,则表示连续字符。

代码实现

查看重要代码的实现

性能优化小技巧

  1. 正则表达式需要编译的时间,如果需要频繁使用,可以用静态变量来存储编译好的正则表达式,减少编译时间
  2. 多个规则的判断可以合并到一个正则表达式中,减少判断次数
  3. 多个规则用||的方式判断,如果前面的规则不符合,后面的规则就不需要判断了,这样减少了判断次数

完整代码实现

查看完整代码的实现

总结

所有的后端工程师都应该有最基本的安全意识,要求用户设置强密码是保护用户数据的第一步。

这个简单的密码强度检查器可以帮助你检查用户设置的密码是否符合基本的安全标准,保护用户的数据安全。

你可以通过这个简单的实现来学习正则表达式的使用,以及如何检查密码的强度。如果你想进一步提高密码强度检查的功能,可以考虋增加更多的检查条件,比如密码是否包含用户名、是否包含常见的密码等。

所有的后端面试常见的问题,我们每天都会在我们的编程群里面讨论和Code review, 欢迎大家加入我们的编程群,一起学习和进步。

上面的代码,我们给出了优化的版本,可以关注入职啦公众号,里面每日分享文章,可以查看更多后端编程面试题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/25962.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(免费领源码)基于 node.js#vue#mysql的网上游戏商城35112-计算机毕业设计项目选题推荐

摘 要 本论文主要论述了如何使用node.js语言开发一个基于vue的网上游戏商城,本系统将严格按照软件开发流程进行各个阶段的工作,本系统采用的数据库是Mysql,使用node.js的koa技术技术构建的一个管理系统,实现了本系统的全部功能。在…

Java--Math类和Random类

1.Math类简介 1.Math类中提供了大量用于数学运算的相关方法。 2.Math类是使用final修饰的终结类,不能产生子类 3.Math类中的方法都是static修饰的静态方法,可以通过类名.方法名直接调用 2.Math常用方法 1.abs(int):求绝对值(int,long,floa…

ABB机器人修改IO信号的具体方法介绍

ABB机器人修改IO信号的具体方法介绍 具体步骤可从参考以下内容: 导出IO配置文件 打开【控制面板】-【配置】-【I/O System】-【文件】-【‘EIO’另存为】,就可以保存IO配置文件【EIO.cfg】用RobotStudio软件打开EIO.cfg文件在软件界面,鼠标右击,选择【I/O信号数据编辑器】选…

【MyBatis-plus】saveBatch 性能调优和【MyBatis】的数据批量入库

总结最优的两种方法: 方法1: 使用了【MyBatis-plus】saveBatch 但是数据入库效率依旧很慢,那可能是是因为JDBC没有配置,saveBatch 批量写入并没有生效哦!!! 详细配置如下:批量数据入…

数据结构---外部排序

个人介绍 hello hello~ ,这里是 code袁~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 🦁作者简介:一名喜欢分享和记录学习的…

【计算机毕业设计】266基于微信小程序的在线点餐

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

【Nature子刊】最争气国人友好“灌水刊”,中科院3区升2区,录用仅1个月,2天见刊!

本周投稿推荐 SSCI • 中科院2区,6.0-7.0(录用友好) EI • 各领域沾边均可(2天录用) CNKI • 7天录用-检索(急录友好) SCI&EI • 4区生物医学类,0.5-1.0(录用…

最长有效括号 - LeetCode 热题 90

大家好!我是曾续缘🤪 今天是《LeetCode 热题 100》系列 发车第 90 天 动态规划第 10 题 ❤️点赞 👍 收藏 ⭐再看,养成习惯 最长有效括号 给你一个只包含 ( 和 ) 的字符串,找出最长有效(格式正确且连续&…

【单片机毕业设计9-基于stm32c8t6的酒窖监测系统】

【单片机毕业设计9-基于stm32c8t6的酒窖监测系统】 前言一、功能介绍二、硬件部分三、软件部分总结 前言 🔥这里是小殷学长,单片机毕业设计篇9基于stm32的酒窖监测系统 🧿创作不易,拒绝白嫖可私 一、功能介绍 -------------------…

Redis命令实践

Redis命令实践 Redis是一个开源的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中介。由于其高性能、丰富的数据结构和简单的命令集,Redis成为了许多现代应用程序的首选。以下是对Redis命令的详细实践介绍。 一、连接Redis服务器…

独而不孤,心动邂逅“情缘密语”虚拟数字人伴侣,让生活每一刻闪耀浪漫——全网首发全息智能伴侣数字人管家

【独而不孤,心动邂逅——“情缘密语”虚拟数字人伴侣,让生活每一刻闪耀浪漫】 在这个快节奏又偶尔孤单的世界里,每个人都值得被温柔以待,每颗心都渴望着理解与共鸣。为此,我们匠心推出了”情缘密语”您的理想虚拟全息数…

美国冷吨 日本冷吨英国冷吨的区别

冷吨的定义不是24小时内将0摄氏度的水冷冻成0摄氏度的冰所需要的冷量么?那么为什么会有三个单位的区别呢?是气候导致物性的变化么?还是别的什么原因?为什么美国冷吨和日本冷吨及英国冷吨不同呢? 基本单位不一样&#…

Python版与Java版城市天气信息爬取对比分析

在对比Python版和Java版城市天气信息爬取时,我们需要考虑多个方面,包括语言特性、库支持、代码简洁性、执行效率以及维护成本等。以下是对这两个版本进行的一些对比分析: 1. 语言特性 Python: 易于学习:Python的语法清…

使用HSSFWorkbook导出excel

导入依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.17</version> </dependency>工具类 public class ExcelUtil {/*** 导出Excel* param sheetName sheet名称* param title 标…

基本药物采购使用

--医院采购基本药物金额数 select sum(采购基本药物金额数) 采购基本药物金额数 from ( select sum(t.实收金额) 采购基本药物金额数 from 住院费用记录 t,药品规格 a where t.收费细目ida.药品id and t.记录状态1 and a.基本药物基药 and t.收费细目id not in( …

装箱与拆箱, 包装类的缓存机制

前言 逆水行舟&#xff0c;不进则退&#xff01;&#xff01;&#xff01; 装箱与拆箱 自动装箱: 是指将基本类型自动转换为对应的包装类对象的过程. 例如: Integer y 5; // 编译器自动将 int 5 转换为 Integer 对象自动拆箱: 是指将包装类对象自动转换为对应的…

responses-validator接口断言之状态码

概述 responses-validator 专用于对 reqeuests 的响应对象进行断言&#xff0c; 同时&#xff0c;为了更适用 yaml 的场景&#xff0c;支持了多种灵活、可扩展的写法&#xff0c;可用于搭建yaml接口自动化测试框架。 根据 reqeuests 响应对象的特点&#xff0c;responses-val…

多线程爬取百度图片

爬取网页图片 import urllib.parse import requests import os import time from concurrent.futures import ThreadPoolExecutorheaders {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0…

JVM知识点

JVM是什么 JVM&#xff08;Java Virtual Machine&#xff09;是 Java 虚拟机&#xff0c;用于运行 Java 编译后的二进制字节码&#xff0c;最后生成机器指令。JVM 是 Java 能够跨平台的核心 JDK&#xff0c;JRE&#xff0c;JVM三者关系 三者的关系是&#xff1a;一层层的嵌套关…

第26讲:Ceph集群OSD扩缩容中Reblanceing数据重分布

文章目录 1.Reblanceing数据重分布的概念2.验证Reblanceing触发的过程3.Reblanceing细节4.临时关闭Reblanceing机制 1.Reblanceing数据重分布的概念 当集群中OSD进行扩缩容操作后&#xff0c;会触发一个Reblanceing数据重分布的机制&#xff0c;简单的理解就是将扩缩容前后OSD…