生成包括大小写字母数字以及符号的密码且不能有连续或者倒叙以及其校验

本文主要是介绍生成包括大小写字母数字以及符号的密码且不能有连续或者倒叙以及其校验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一 : 生成随机密码

生成随机密码
// 随机生成密码方法 
function randomPassword(min: number, max: number) {let str = ""let arr =["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u","v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",'`', '~', '@', '#', '$', '%', '^', '&','*', '(', ')', '-', '_', '=', '+', '[','{', '}', ']', '|', ';', ':', ',', '<', '.', '>', '?']let range = Math.round(Math.random() * (max - min)) + minfor (let i = 0; i < range; i++) {let pos = Math.round(Math.random() * (arr.length - 1));str += arr[pos]}return str
}

校验

1. 判断生成密码不可以连续或者倒叙方法
 // 判断生成密码不可以连续或者倒叙adjoinVerfy(str) {let flag = false; // 默认不连贯for (let i = 0; i < str.length; i++) {// 如果是第一位 只判断和后一位的不判断前面的会报错if (i != 0) {if (typeof Number(str[i]) === "Number") {if (parseInt(str[i]) + 1 == parseInt(str[i - 1]) ||parseInt(str[i]) - 1 == parseInt(str[i - 1])) {flag = true;break;}} else {if (str[i].charCodeAt() - str[i - 1].charCodeAt() == 1 ||str[i].charCodeAt() - str[i - 1].charCodeAt() == -1) {flag = true;break;}}}}return flag;}
2. 校验
testPassWorld() {this.password = randomPassword(8, 16);console.log(this.password);let exp = /.*(?=.{8,16})(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[`~!@#$%^&*?\\(\\)\\-_=+\\[\\{\\}\\]|;:<.>,]).*$/;// 判断生成的随机密码中是否包含大小写字母和数字字母if (exp.test(this.password)) {// 判断有没有倒叙或者正序相连的数字或者字母let flag = this.adjoinVerfy(this.password);if (flag) {this.testPassWorld();}} else {this.testPassWorld();}},

这篇关于生成包括大小写字母数字以及符号的密码且不能有连续或者倒叙以及其校验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/614075

相关文章

Oracle登录时忘记用户名或密码该如何解决

《Oracle登录时忘记用户名或密码该如何解决》:本文主要介绍如何在Oracle12c中忘记用户名和密码时找回或重置用户账户信息,文中通过代码介绍的非常详细,对同样遇到这个问题的同学具有一定的参... 目录一、忘记账户:二、忘记密码:三、详细情况情况 1:1.1. 登录到数据库1.2. 查看当前用户信息1.

nginx生成自签名SSL证书配置HTTPS的实现

《nginx生成自签名SSL证书配置HTTPS的实现》本文主要介绍在Nginx中生成自签名SSL证书并配置HTTPS,包括安装Nginx、创建证书、配置证书以及测试访问,具有一定的参考价值,感兴趣的可... 目录一、安装nginx二、创建证书三、配置证书并验证四、测试一、安装nginxnginx必须有"-

SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)

《SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)》本文介绍了如何在SpringBoot项目中使用Jasypt对application.yml文件中的敏感信息(如数... 目录SpringBoot使用Jasypt对YML文件配置内容进行加密(例:数据库密码加密)前言一、J

Java实战之利用POI生成Excel图表

《Java实战之利用POI生成Excel图表》ApachePOI是Java生态中处理Office文档的核心工具,这篇文章主要为大家详细介绍了如何在Excel中创建折线图,柱状图,饼图等常见图表,需要的... 目录一、环境配置与依赖管理二、数据源准备与工作表构建三、图表生成核心步骤1. 折线图(Line Ch

MySQL9.0默认路径安装下重置root密码

《MySQL9.0默认路径安装下重置root密码》本文主要介绍了MySQL9.0默认路径安装下重置root密码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录问题描述环境描述解决方法正常模式下修改密码报错原因问题描述mysqlChina编程采用默认安装路径,

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

Java数字转换工具类NumberUtil的使用

《Java数字转换工具类NumberUtil的使用》NumberUtil是一个功能强大的Java工具类,用于处理数字的各种操作,包括数值运算、格式化、随机数生成和数值判断,下面就来介绍一下Number... 目录一、NumberUtil类概述二、主要功能介绍1. 数值运算2. 格式化3. 数值判断4. 随机

MySQL修改密码的四种实现方式

《MySQL修改密码的四种实现方式》文章主要介绍了如何使用命令行工具修改MySQL密码,包括使用`setpassword`命令和`mysqladmin`命令,此外,还详细描述了忘记密码时的处理方法,包... 目录mysql修改密码四种方式一、set password命令二、使用mysqladmin三、修改u

Java使用POI-TL和JFreeChart动态生成Word报告

《Java使用POI-TL和JFreeChart动态生成Word报告》本文介绍了使用POI-TL和JFreeChart生成包含动态数据和图表的Word报告的方法,并分享了实际开发中的踩坑经验,通过代码... 目录前言一、需求背景二、方案分析三、 POI-TL + JFreeChart 实现3.1 Maven

电脑密码怎么设置? 一文读懂电脑密码的详细指南

《电脑密码怎么设置?一文读懂电脑密码的详细指南》为了保护个人隐私和数据安全,设置电脑密码显得尤为重要,那么,如何在电脑上设置密码呢?详细请看下文介绍... 设置电脑密码是保护个人隐私、数据安全以及系统安全的重要措施,下面以Windows 11系统为例,跟大家分享一下设置电脑密码的具体办php法。Windo