Skip to content
Menu
编程侠
  • 首页
  • 资讯
    • 手机
  • 博客
    • 博客vue
    • 博客PHP
  • Q我
编程侠
2024-11-132024-11-13

831密码安全口令

8:密码长度至少8位;

3:使用数字、大写字母、小写字母、特殊符号至少3种组合;

1:至少一个月更换一次。

程序上验证密码至少8位长并且包含大写字母、小写字母、数字、特殊字符中的至少三种类型:

1、正则表达式

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d[^@$!%*?&]*.[@$!%*?&].*|[^a-z]*[a-z].*[^A-Z\d]*[A-Z].*[^a-z\d]*[\d].*|[^A-Z]*[A-Z].*[^a-z\d]*[\d].*[^a-z]*[a-z].*)|(?=.*[a-z])(?=.*[A-Z])(?=.*[@$!%*?&])[^d]*[\d].*|(?=.*[a-z])(?=.*\d)(?=.*[@$!%*?&])[^A-Z]*[A-Z].*|(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[^a-z]*[a-z].*[A-Za-z\d@$!%*?&]{7,}$

由于正则表达式本身不支持直接的“至少三种类型”的逻辑判断,需要通过多个预查来模拟这种逻辑,并使用了嵌套的正则表达式和逻辑或来确保至少三种类型的字符。该表达式非常复杂且难以维护,而且可能不是最优解。更好的做法可能是使用编程语言中的正则表达式库结合简单的逻辑判断来处理这种情况。

2、逻辑判断

const validatePassword = (value) => {
      const hasLowercase = /[a-z]/.test(value)
      const hasUppercase = /[A-Z]/.test(value)
      const hasDigit = /\d/.test(value)
      const hasSpecialChar = /[^a-zA-Z0-9 ]/.test(value)
      // 计算包含的字符类型数量
      let typeCount = 0
      if (hasLowercase) typeCount++
      if (hasUppercase) typeCount++
      if (hasDigit) typeCount++
      if (hasSpecialChar) typeCount++

      if (value.length < 8 || typeCount < 3) {
        return false
      } else {
        return true
      }
    }

最新

  • 831密码安全口令
  • 链接跳转到百度地图的指定地址
  • 云服务提到的99.99%的服务可用性,这是个什么概念?
  • 兼容IE的CSS竖排文字代码
  • 网页灰度

标签

831 a标签 canvas clone csrf echarts filter GB2312 grayscale Hello html2canvas iframe prism Unicode UTF-8 wordpress world XSS 不触发 云服务 代码雨 大数据 异常 手机号 打印 拼多多 数组 文字转语音 朗读 正则 深浅拷贝 热力图 竖排 签名验证 编码 编程圈 置灰 背代码 节流 速度 链接 链接跳转 键盘 防抖 验证

友情链接

  • staggering-beauty
  • 编程侠
©2025 编程侠 渝ICP备20006693号-4