javascript 密码强度规则、打分、验证(给出前端代码,后端代码可根据强度规则翻译)

安全函数(详细版) C语言中的安全函数是对传统函数的增强,目的是提高程序的安全性和稳定性。使用这些函数可以减少很多常见的编程错误,尤其是在处理字符串和内存操作时。但是,它们也带来了一定的编程复杂性,程序员需要理解和合理使用这些函数,以便更好地提高代码的质量和安全性。 阅读详情

前言:

密码强度是一个很普遍的功能,比较简单,主要是怎么制定这个强度规则。现在需要升级密码强度的验证,以前的验证比较简单,现在已经不能满足需求了,现在需要可灵活变化并有多级别可配置选择的一个密码强度验证,所以就设计了下面这个东东。在设计前也参考了下比较成熟的强度规则,大同小异,不外乎都采取了打分的机制来控制密码强度规则,这样可配置性高,灵活。本来想直接拿来用的,但是发现都比较旧,有些不太适宜公司开发的需求,可能这个东西比较简单吧,所以也没什么人去更新和写新的代码,所以还是自己动手设计了规则和写了代码。

 

实现:

  原理:

  采用打分的机制,打分分为3类(基础分、加分、减分),先求出基础分,在计算加分的部分,最后减去要扣除的分数就为最终总分。

  

  规则:

  密码可输入类型(字符,字母大写,字母小写,特殊字符)。

  基础分为,密码长度,一个长度为一分,大于18个字符都为18分;密码里面包含一种可输入类型,基础分加4分。

  加分为,一种密码可输入类型的总数量大于等于2个,加分2分,如果总数量大于等于5,加分4分。

  减分为,如果有连续重复的单个种类字符,则重复一次减1分。

  总分50分。

  0~10分:不合格(弱)

  11~20分:一般

  21~30分:中

  31~40分:强

  41~50分:安全

  *分数范围可以自由调整和搭配,其实整个打分规则都可以根据需要修改

 

  code:

function passwordGrade(pwd) {
            var score = 0;
            var regexArr = ['[0-9]', '[a-z]', '[A-Z]', '[//W_]'];
            var repeatCount = 0;
            var prevChar = '';

            //check length
            var len = pwd.length;
            score += len > 18 ? 18 : len;

            //check type
            for (var i = 0, num = regexArr.length; i < num; i++) { if (eval('/' + regexArr[i] + '/').test(pwd)) score += 4; }

            //bonus point
            for (var i = 0, num = regexArr.length; i < num; i++) {
                if (pwd.match(eval('/' + regexArr[i] + '/g')) && pwd.match(eval('/' + regexArr[i] + '/g')).length >= 2) score += 2;
                if (pwd.match(eval('/' + regexArr[i] + '/g')) && pwd.match(eval('/' + regexArr[i] + '/g')).length >= 5) score += 2;
            }

            //deduction
            for (var i = 0, num = pwd.length; i < num; i++) {
                if (pwd.charAt(i) == prevChar) repeatCount++;
                else prevChar = pwd.charAt(i);
            }
            score -= repeatCount * 1;

            return score;

 }

 

打分例子:

1111=7分
1@dA=20分
111111=9分
abcdef1=19分
abcd12=18分
abc123=18分
ab123A=22分
aA12j@=26分
aasdfkjjsjjj=16分
111111111dsfskjjkjeh=25分
1111dsfskjjkjeh=25分
1231kb#4ktSF!T@s^j#hkWH=50分
skhk3293ks=24分
sfh#4hHdk=29分
bure12#sk=27分
a@s@dk23=26分
bruceLi@09kt=34分
ce@Li1=24分

 

END

到这里就结束了,欢迎大家一起来讨论这个打分的规则,大家也可以直接给出自己写好的规则和代码,这样方便大家研究和交流,代码是需要不断维护和更新的,这样我们才能站在前人的脚本上面继续前进。

UX Engineering:以行为契约为核心的前端工程范式迁移 在现代Web应用中,'用户行为'正从UI附属品升级为可建模、可验证、可协作的一等工程对象。行为驱动开发(BDD)与界面到行为映射(Interface-to-Behavior Mapping)共同构成UX Engineering的核心原理,其技术价值在于弥合设计-开发-测试间的语义鸿沟、抑制状态爆炸、降低跨职能协作熵值。典型应用场景包括金融表单引导、教育课程报名、B2B配置向导等行为密集型系统。本文聚焦行为契约(Behavior Contract)这一关键载体,详解其声明式定义、自动化验证与运行时集成机制,推 阅读详情

相关推荐

AI建站工具三剑客:v0、Bolt、Lovable的范式差异与工程落地指南

AI驱动的前端开发正从‘写代码’转向‘定义问题’,核心能力演变为需求翻译与协作决策。v0.dev聚焦像素级UI生成,深度绑定Next.js+Tailwind,适合高保真视觉交付;Bolt.new依托WebContainer提供浏览器内真实Node运行时,是技术验证的理想沙盒;Lovable.dev则以Prompt为入口,自动推导Supabase Schema与全栈MVP,加速商业可行性验证。三者并非替代关系,而是覆盖需求验证、UI实现、逻辑探查、部署上线的完整AI辅助开发闭环。理解其底层范式——UI翻译官、

weixin_30363981的博客 500

javascript 密码强度规则、打分、验证(给出前端代码,后端代码可根据强度规则翻译)...

前言: 密码强度是一个很普遍的功能,比较简单,主要是怎么制定这个强度规则。现在需要升级密码强度的验证,以前的验证比较简单,现在已经不能满足需求了,现在需要可灵活变化并有多级别可配置选择的一个密码强度验证,所以就设计了下面这个东东。在设计前也参考了下比较成熟的强度规则,大同小异,不外乎都采取了打分的机制来控制密码强度规则,这样可配置性高,灵活。本来想直接拿来用的,但是发现都比较旧,有些不太适宜公司...

weixin_34109408的博客 249

LLM聊天机器人四维质量评估体系:事实性、任务完成、健壮性与安全对齐

大语言模型(LLM)聊天机器人不同于传统软件或静态NLP模型,其质量核心在于多维度动态能力——既需保障事实准确性以规避幻觉风险,又依赖任务完成度实现业务闭环,还需在噪声输入、情绪对抗等真实交互中保持健壮性,并严格对齐安全红线与品牌价值观。当前BLEU/ROUGE等传统指标因脱离语境而失效,人工评测易受主观干扰,线上成功率更常掩盖深层失败。本文基于金融、电商、医疗等高敏行业实战,系统提出可落地的四维体检法:从事实交叉验证、任务流图谱建模、交互压力测试到红黄蓝三级对齐机制,覆盖从评估设计、自动化流水线搭建到人机

weixin_30813225的博客 363

C-扫雷(初级版)

扫雷初级版,进阶版敬请关注

HDSTQTW的博客 551

Codex AI编程工作流:分层设计与工程化落地实践

AI编程已从简单代码补全升级为可嵌入CI/CD的工程化实践。其核心在于理解大模型的能力边界——非万能生成,而是受限于上下文、token与确定性约束的精准施工。Codex工作流通过任务切片、生成控制与三层保障(静态校验、动态沙箱、人工门禁),将AI输出转化为可审计、可追溯、可协作的生产级代码。它不依赖特定模型,而提供统一适配协议,天然支持Claude、DeepSeek等多模型切换;也不追求单次响应最快,而是以‘每千行人工修正行数’为真实效能指标。面向已接入API并运行AI代码至staging环境的开发者,本文

conghuang7343的博客 512

软件设计实战指南:从模糊需求到可落地的技术方案

软件设计不是对SOLID、DDD等抽象原则的教条复刻,而是将业务诉求转化为可测量、可验证、可证伪的技术契约的过程。其核心原理在于目标分层(业务层→系统层→实现层)与途径匹配(约束驱动的暴力解法),技术价值体现在降低交付风险、控制复杂度膨胀、提升线上稳定性。典型应用场景包括高频变更的促销规则配置、读多写少的商品详情页缓存、跨系统强事务保障、海量IoT日志查询及不稳第三方API集成。本文聚焦真实项目中的目标拆解方法、五类高频场景的参数化选型策略,以及四张驱动表构成的设计闭环机制。

a6t2007的博客 581

MySQL函数(超详细)

​ 在MySQL中有很多内置函数,除了之前学习的聚合函数之外,还有很多其他内置函数:数值函数、字符串函数、时间日期函数、流程控制函数、加解密函数、开窗函数等。

weixin_44579176的博客 2568

Codex五大必装插件:构建智能开发工作流闭环

Codex作为大模型驱动的开发者智能代理框架,其核心价值不在于替代IDE,而在于打通设计、文档、代码、运行时与协作工具间的语义断点。它依赖插件实现跨工具上下文理解、本地化敏感数据处理、项目结构自适应感知等关键能力。Figma Sync Bridge解决设计稿到代码的字段级映射,DocuMind将PDF/Word技术文档转化为可检索知识图谱,StackTrace Guardian把堆栈错误翻译为可执行修复方案,EnvProbe实现环境变量全链路溯源,GitFlow Copilot支持自然语言驱动的Git状态机

cqbh2011的博客 463

前端正则校验密码强度(弱中强)

//密码为八位及以上并且字母数字特殊字符三项都包括 var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g"); //密码为八位及以上并且字母、数字、特殊字符三项中有两项,强度是中等 var mediumRegex = new RegExp("^(?=.{8,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[...

山有木兮木有枝 心悦君兮君不知 8078

【产品体系】第六十五篇 Nacos / HiClaw / HiMarket 体系01

子系统核心现象主力数学工具​变更传播 fan-out / cache staleness图 fan-out 分析、概率上界 P(Tstale​)、logical-clock version monotonicityHigress 网关​突发限流、延迟堆积排队论 (M/G/1)、Token/Leaky Bucket ODE、Little's Law L=λWHiMarket 检索​语义匹配召回、去冗余。

weixin_49199313的博客 61

【信息科学与工程学】【数据科学】数据科学领域 第六篇 算法设计 07 堆、栈、表、矩阵、集合、队列、数组、字符串、树、图、动态规划、结构体、元组的算法01

当前段必须包含所有字符的最后出现位置。1. 字符串分割成最多片段2. 基因序列功能域划分3. 文本段落划分4. 音频声道分离5. 图像色彩分区6. 社交网络社群划分7. 蛋白质结构域8. 音乐乐章分段9. 代码模块划分10. 章节划分特征:一次扫描,贪心确定边界。

weixin_49199313的博客 1272

javascript 密码强度规则、打分、验证(给出前端代码,后端代码可根据强度规则翻译) (转自http://www.cnblogs.com/bruceli)...

感觉不错粘过来收藏。http://www.cnblogs.com/bruceli javascript 密码强度规则、打分、验证(给出前端代码,后端代码可根据强度规则翻译) 前言: 密码强度是一个很普遍的功能,比较简单,主要是怎么制定这个强度规则。现在需要升级密码强度的验证,以前的验证比较简单,现在已经不能满足需求了,现在需要可灵活变化并有多级别可配置选择的一个密码...

weixin_30367873的博客 105

图像去模糊(二)——Richardson–Lucy算法

Richardson Lucy Algorithm(Richardson-Lucy算法详解及效果实例)

xueruhongchen的博客 3万+

Qwen 3.6-Plus实测:Agentic Coding的决策与执行双闭环

Agentic Coding(智能体编程)正从概念走向工程落地,其核心并非单纯生成代码,而是实现‘需求理解→任务拆解→技术选型→鲁棒实现→闭环验证’的完整执行链。当前大模型普遍面临决策与执行脱节的瓶颈:能规划却难落地,或能编码却缺系统思维。本文聚焦Qwen 3.6-Plus在真实教育改革方案设计与AI TODO Board开发两大场景中的表现,深入剖析其如何将模糊需求转化为可审计的预算分配、可追踪的关键路径、可复现的16步工程流程,以及对移动端溢出、React.memo失效、中文时间解析等典型‘脏活累活’的

weixin_30606461的博客 323

Python爬虫实战:用BeautifulSoup和Pandas轻松抓取去哪儿网景点数据(附完整代码)

本文详细介绍了如何使用Python的BeautifulSoup和Pandas库构建一个高效的旅游数据爬虫,从去哪儿网抓取景点数据。内容涵盖环境准备、网页结构分析、核心代码实现、反爬策略以及数据清洗与存储,提供完整代码示例,帮助开发者快速掌握数据采集技术。

river的博客 357

Ubuntu系统下STM32开发环境搭建:从零配置CubeMX、VSCode与OpenOCD调试实战

本文详细介绍了在Ubuntu系统下搭建STM32开发环境的完整流程,包括CubeMX、VSCode和OpenOCD的安装配置。通过实战教程指导开发者从基础环境准备到工程创建与调试,提供高效的嵌入式开发解决方案,并分享常见问题解决方法。

potato的博客 941

智能终端增强工具:一键安装的自然语言命令行工作流

现代开发者日常频繁面对重复性命令操作、多格式数据解析与条件筛选等基础任务,传统CLI工具因语法复杂、组合繁琐、上下文缺失而显著抬高认知负荷。本文介绍一类原生终端集成的智能增强型命令行工具集,其核心在于意图识别引擎与上下文感知执行器,将自然语言式指令(如'find slow-500-errors')自动映射为最优工具链(jq/rg/csvkit等),并实现结果智能渲染与按需插件加载。它不替代Linux命令,而是让命令真正‘听懂人话’,适用于前端、产品、运营等非专职工程师群体,尤其契合one-click ins

djfiew7234的博客 409

从零开始:如何用Python手绘波特图并分析电路稳定性

本文详细介绍了如何使用Python绘制波特图并分析电路稳定性,涵盖从基础理论到实际应用的完整流程。通过NumPy和Matplotlib实现频域分析,包括RC低通滤波器和RLC带通滤波器的案例,以及相位裕度计算等高级技巧,为电子工程师提供了一套高效的电路分析解决方案。

hhh00的博客 371

密码强度

密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分。 一、密码长度: 5分:小于等于4个字符 10分:5到7字符 25分:大于等于8个字符 二、字母: 0分:没有字母 10分:全都是小(大)写字母 20分:大小写混合字母 三、数字: 0分:没有数字 10分:1个数字 20分:大于1个数字 四、符号: 0分:没有符号 10分:1个符号 25分:大于1个符号 五、奖励: 2分:字母和数字 3分...

qq_34080360的博客 758

UNITE真菌数据库使用避坑指南:从下载到注释的完整流程

本文提供了UNITE真菌数据库从下载到注释的完整实战指南。针对真菌ITS序列分析,重点解析了数据库版本选择、格式转换的常见陷阱,并详细介绍了如何训练优化的sklearn分类器以提升物种注释的精度和可靠性,帮助用户构建高效稳定的本地工作流。

weixin_29240343的博客 199

vasp和ms_武汉理工大学赵焱课题组开发脚本 MS建模一键获取VASP输入文件POSCAR

本文给大家推介并分享一个通过Materials Studio一键获取VASP输入文件POSCAR的脚本,xsd2pos.pl。此脚本是武汉理工大学首席教授赵焱在帮助学生解决VASP计算问题时编写,解决了其他间接非手动获取POSCAR存在的问题,同时也相较于其他方法更为便捷,相信会对从事VASP计算的同行们带来便利。赵焱老师怀着哺育天下学子的情怀,希望给大家分享一下。下文介绍一下它的使用方法以及它所...

weixin_39706367的博客 2288

[每日一题] 20. 密码强度等级 (长题目、字符串)

1. 题目来源 链接:密码强度等级 来源:牛客网 2. 题目说明 密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分。 一、密码长度: 5 分:小于等于4 个字符 10 分:5 到7 字符 25 分:大于等于8 个字符 二、字母: 0 分:没有字母 10 分:全都是小(大)写字母 20 分:大小写混合字母 三、数字: 0 分:没有数字 10 分:1 个数字 20 分:大于1 ...

Y-puyu 的博客 1373

数据分析案例-对某宝用户评论做情感分析

目录 原始数据 绘制词云图 情感分析 原始数据 原始数据为某宝一商品的用户评论数据 绘制词云图 # coding=utf-8 import jieba import re import wordcloud import imageio # 打开需要分析词频的文本 with open('淘宝评论3.0.txt', encoding='utf-8') as f: data = f.read() # 文本预处理 :去除一些无用的字符只提取出中文出来 new_data

m0_64336780的博客 1万+
上一篇: 解决并清除SQL被注入恶意病毒代码的语句
下一篇: 如何在Windows Form控件TreeView中遍历和查找指定的CheckBox状态
fisea
博客等级 码龄19年 40粉丝 197原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值