首页 > 其他分享 >写一个密码生成器,并同时写一个密码强度校验的方法

写一个密码生成器,并同时写一个密码强度校验的方法

时间:2025-01-19 11:00:03浏览次数:1  
标签:strength const 强度 生成器 校验 密码 length password

当然,我可以帮你编写一个简单的密码生成器和密码强度校验的方法。以下是一个使用JavaScript实现的示例:

// 密码生成器
function generatePassword(length = 10) {
  const charset = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_+-=[]{};:|,.<>?';
  let password = '';
  for (let i = 0; i < length; i++) {
    const randomIndex = Math.floor(Math.random() * charset.length);
    password += charset[randomIndex];
  }
  return password;
}

// 密码强度校验方法
function checkPasswordStrength(password) {
  let strength = 0;
  const regexes = [
    /[a-z]/, // 小写字母
    /[A-Z]/, // 大写字母
    /[0-9]/, // 数字
    /[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/ // 特殊字符
  ];
  const factors = [2, 2, 2, 3]; // 每个条件满足时增加的强度值

  for (let i = 0; i < regexes.length; i++) {
    if (regexes[i].test(password)) {
      strength += factors[i];
    }
  }

  if (password.length < 6) {
    strength = 0; // 如果密码长度小于6,则强度为0
  } else if (password.length >= 6 && password.length <= 10) {
    strength += 1; // 密码长度在6到10之间,增加1点强度
  } else {
    strength += 2; // 密码长度大于10,增加2点强度
  }

  let strengthLabel = '';
  if (strength < 3) {
    strengthLabel = '弱';
  } else if (strength >= 3 && strength < 7) {
    strengthLabel = '中';
  } else {
    strengthLabel = '强';
  }

  return { strength, strengthLabel };
}

// 示例用法:
const generatedPassword = generatePassword(12); // 生成一个长度为12的密码
console.log('生成的密码:', generatedPassword);

const { strength, strengthLabel } = checkPasswordStrength(generatedPassword); // 检查密码强度
console.log('密码强度值:', strength);
console.log('密码强度等级:', strengthLabel);

在上面的示例中,generatePassword函数用于生成一个指定长度的随机密码,默认长度为10。checkPasswordStrength函数用于检查密码的强度,它根据密码中是否包含小写字母、大写字母、数字和特殊字符,以及密码的长度来计算强度值。最后,根据强度值的大小,返回一个表示密码强度等级的标签(弱、中、强)。你可以根据需要调整密码生成器和密码强度校验方法的逻辑和参数。

标签:strength,const,强度,生成器,校验,密码,length,password
From: https://www.cnblogs.com/ai888/p/18679380

相关文章

  • 【密码学与网络安全】拉宾公钥密码加密解密
    实验目的与要求1.学会用任意编程语言完成初步加解密算法编程;2.掌握拉宾公钥的加密和解密原理;3.学会用规范的方法书写实验报告。实验原理与内容共两个实验,分别如下:一、拉宾公钥加密解密1.拉宾公钥加解密原理Alice要求Bob将信息m加密传送回.(1)密钥生成:Alice找到......
  • golang:校验库go-playground/validator的常用标记
    一,官网:官方文档:https://pkg.go.dev/github.com/go-playground/validator/v10代码地址:https://github.com/go-playground/validator二、常用标记说明标记标记说明例required必填Field或Struct validate:"required"omitempty空时忽略Field或Struct va......
  • 记一次GM220-S获取超级管理员密码的过程
    此方法只适用自己手上有逻辑ID的方法,事实上可以直接找宽带师傅要密码一、恢复出厂设置1.拔网线2.恢复出厂设置用细铁丝按住侧边的恢复出厂设置按钮,全亮之后灭了继续按别放手所有灯又再次变亮后又闪了俩遍后就可以松手了!全程最少20秒!二、开启telnethttp://192.168.1.1/usr=CM......
  • 记一次众测发现的任意用户修改密码
    0x1前言某次众测,在测试过程中,发现平台在用户身份验证机制上的关键缺陷,导致仅需获取目标用户的用户名和手机号,即可实现任意用户密码的修改。这一问题显然暴露了平台在身份认证设计中的重大安全隐患。这一漏洞的利用门槛相对较低,攻击者可以通过社会工程学或公开信息获取目标用户......
  • 第10个项目:图片转Turtle代码生成器Python源码
    完整源码在文末,可直接下载使用,也可在此基础上做定制开发。应用场景:上传图片,自动生成Turtle代码。点击执行代码,可把图片完整画出来。功能特点:支持设置背景图片,可在背景图片上嵌入式画图,很有意思。软件截图:核心源码:importtkinterastkfromtkinterimportfiledialog,t......
  • 重置安装的Gitlab管理员密码
    方法1:GitLabRails重置GitLab提供了一个Rails控制台,可以用来直接修改用户密码。1.进入GitLabRails控制台运行以下命令:sudogitlab-railsconsole等待控制台加载完成。2.查找管理员用户默认的管理员用户是root。在控制台中输入以下命令查找该用户:user=User.w......
  • 密码学——密码学基础、散列函数与数字签名
    1.密码学概述是信息安全的基础和核心,是防范各种安全威胁的重要手段,信息安全的许多相关知识都与密码学相关。密码学发展密码学是一门古老而又年轻的学科,几千年以前就存在,至今仍在发展演进。地位非常重要甚至起决定性作用。密码学源于希腊语kryptós,意为“隐藏的”。最早的......
  • 重构经历_编写代码生成器
    我的重构经历:编写代码生成器概述背景多年前,我开发了一个基于C#的Windows程序——代码生成器,并在此后十多年间持续优化。该程序能够根据数据库表结构生成代码,并将结果显示在文本框中。最初是从同事那里接手的一个简单项目,经过不断扩展和重构,最终实现了通过数据库自动生成具备完......
  • 密码学——现代密码体制总结(别再管哈希叫加密了哦)
    文章目录加解密与现代密码体制总结一、什么是加解密?1.加密与解密2.传统的加解密(古典密码)3.现代的加解密二、现代密码体制1.现代密码的两大类2.两种体制各有特点三、对称密钥体制Ⅰ.分组密码1.Feistel——经典的分组密码结构2.DES(DataEncryptionStandard)——数......
  • 系统登录密码忘记后的重置方法及注意事项
    当您忘记系统登录密码时,不必过于担心。我们为您提供了一套详细的步骤来帮助您安全地重置密码,并确保能够顺利恢复对系统的访问权限。以下是具体的操作指南:1. 通过控制面板重置密码大多数云服务提供商都提供了便捷的管理界面,允许用户直接在控制面板中重置系统登录密码。请按照以......