零基础做一个密码强度检测工具:弱密码一眼识破
一行需求一个完整的 Python 项目 —— 含 40 项单元测试全部通过。引言在日常开发中密码强度检测是一个常见但容易被忽视的功能。无论是用户注册、密码修改还是安全审计一个可靠的密码强度评估工具能有效提升系统安全性。传统做法需要开发者手动编写多维度检测逻辑、编写测试用例、整理文档——耗时且容易遗漏边界情况。本文使用华为云码道CodeArtsAI 编程助手仅通过一句自然语言需求描述自动生成一个功能完整的 Python 密码强度检测工具包含 7 维度检测、5 级评分、彩色输出、批量检测等功能以及 40 个单元测试用例所有测试一次通过。码道 AI 编程助手简介码道CodeArts是华为云推出的 AI 编程助手深度融合华为云生态支持自然语言驱动的项目生成、代码补全、单元测试、代码审查等能力。开发者只需描述需求码道即可自动完成项目搭建、代码编写和测试验证。开通地址https://developer.huaweicloud.com/codeartsco.html?sourcedmzntgwsfsourceaddmzntgwwbwzAK/SK 配置页https://codearts.huaweicloud.com/portal/settings/cli-auth码道支持 CLI 和 TUI 两种交互模式开发者可以在 Windows Terminal 中通过codearts命令启动交互式终端界面通过自然语言描述需求码道会自动分析、规划并生成完整项目代码。任务描述本次任务需求如下创建一个 Python 命令行密码强度检测工具 password_checker支持命令行输入密码或从标准输入读取检测维度包括长度8 分、大小写字母、数字、特殊字符、常见密码黑名单5 级评分0-100 分并映射为极弱/弱/中/强/极强输出彩色结果和详细反馈项目结构包含 password_checker.py 主程序、test_password_checker.py 单元测试、requirements.txt、README.md使用 argparse 命令行参数支持 --password 和 --file 批量检测开发过程需求输入在 Windows Terminal 中启动码道 TUI输入上述需求描述。码道首先解析需求自动拆解为可执行的子任务。码道自动执行码道解析需求后自动规划任务并逐步执行创建 password_checker.py 主程序- 实现 7 个检测维度的评分引擎创建 test_password_checker.py 单元测试- 40 个测试用例覆盖所有检测函数创建 requirements.txt- 声明项目依赖纯标准库创建 README.md- 完整的使用文档自动运行测试验证- 40 个测试全部通过整个过程无需人工干预码道自主完成了从需求分析、代码生成到测试验证的完整闭环。代码解析核心架构项目采用函数式评分引擎设计每个检测维度封装为独立函数返回(通过状态, 分值, 描述信息)三元组defcheck_length(password):lengthlen(password)iflength16:returnTrue,25,f长度优秀({length}字符)eliflength12:returnTrue,20,f长度良好({length}字符)eliflength8:returnTrue,15,f长度合格({length}字符)else:returnFalse,max(0,length*2),f长度不足({length}字符建议至少8字符)其他检测函数check_uppercase,check_lowercase,check_digit,check_special,check_common,check_sequential,check_repeated遵循相同模式。评分引擎score_password()函数聚合所有检测结果映射到 5 级评分defscore_password(password):checks{}forcheck_fnin[check_length,check_uppercase,check_lowercase,check_digit,check_special,check_common,check_sequential,check_repeated]:passed,pts,msgcheck_fn(password)checks[check_fn.__name__]{passed:passed,points:pts,message:msg}totalsum(c[points]forcinchecks.values())totalmax(0,min(100,total))iftotal20:level0# 极弱eliftotal40:level1# 弱eliftotal60:level2# 中eliftotal80:level3# 强else:level4# 极强returnPasswordResult(password,total,level,...)评分规则检测维度分值范围说明长度0-25≥16 字符 25 分≥12 字符 20 分≥8 字符 15 分大写字母0-15≥2 个 15 分≥1 个 10 分小写字母0-15≥2 个 15 分≥1 个 10 分数字0-15≥3 个 15 分≥1 个 10 分特殊字符0-20≥2 个 20 分≥1 个 15 分常见密码-30-0命中黑名单扣 30 分连续字符-15-0≥4 连续扣 15 分重复字符-10-0≥4 重复扣 10 分命令行接口使用 argparse 实现灵活的 CLIparser.add_argument(--password,-p,typestr,help直接输入待检测密码)parser.add_argument(--file,-f,typestr,help从文件批量读取密码(每行一个))parser.add_argument(--no-color,actionstore_true,help禁用彩色输出)支持三种输入方式--password参数、管道标准输入、--file批量文件。单元测试测试文件包含 40 个测试用例覆盖每个检测函数的所有分支classTestCheckLength(unittest.TestCase):deftest_short_password(self):...deftest_eight_chars(self):...deftest_twelve_chars(self):...deftest_sixteen_chars(self):...classTestCLI(unittest.TestCase):deftest_password_argument(self):...# 命令行参数模式deftest_stdin_input(self):...# 标准输入模式deftest_file_input(self):...# 文件批量模式运行效果强密码测试$ python password_checker.py--passwordMyStr0ngPass!2024--no-color 密码: M****************4 评分:90/100 等级: 极强 详细检测: ✓ 长度优秀(18字符)✓ 大写字母优秀(3个)✓ 小写字母优秀(8个)✓ 数字优秀(5个)✓ 特殊字符优秀(2个)✓ 未命中常见密码黑名单 ✓ 无过长连续字符 ✓ 无过多重复字符弱密码测试$ python password_checker.py--password123456--no-color 密码:1****6 评分:0/100 等级: 极弱 详细检测: ✗ 长度不足(6字符建议至少8字符)✗ 缺少大写字母 ✗ 缺少小写字母 ✓ 数字优秀(6个)✗ 缺少特殊字符 ✗ 命中常见密码黑名单 ✗ 包含过长连续字符(6个)✓ 无过多重复字符单元测试结果$ python-munittest test_password_checker-v................(40tests)---------------------------------------------------------------------- Ran40testsin0.376s OK能力总结通过本次实践码道展现了以下核心能力需求理解与任务拆解将一句自然语言需求自动拆解为 5 个可执行子任务代码生成质量生成的代码结构清晰、命名规范、包含完整的文档字符串7 维度检测引擎一次生成覆盖所有检测维度无需人工补充完整测试覆盖自动生成 40 个单元测试覆盖正常路径和边界情况零外部依赖项目仅使用 Python 标准库可直接运行命令行友好支持 argparse、管道输入、批量检测等多种使用方式总结本文演示了使用华为云码道 AI 编程助手通过一句自然语言描述快速生成完整 Python 项目的过程。从需求输入到 40 个测试全部通过全程自动完成充分体现了 AI 辅助编程在提升开发效率方面的价值。码道通过智能需求分析、任务规划、代码生成、测试验证的闭环让开发者可以将更多精力投入在业务逻辑设计上而非重复性的编码和测试工作。对于标准化程度高、模式固定的功能模块码道能够显著缩短开发周期、降低出错概率。注本文项目代码由码道 AI 编程助手生成测试结果来自实际执行未做任何人工修改。

相关新闻

个人微信二次开发 API:接入 GPT 实现智能客服大模型

个人微信二次开发 API:接入 GPT 实现智能客服大模型

随着大语言模型(LLM)的普及,将传统客服升级为具备语义理解能力的 AI 客服已成为趋势。本文将展示如何通过 API 接口将个人微信与大语言模型进行对接。 1. 业务交互流程 整个系统的数据流转路径非常清晰: 接收用户消息&#xff1…

2026/10/4 7:09:19 阅读更多 →
2026适合设计师的AIGC学习平台TOP5,专业的AIGC在线学习平台推荐

2026适合设计师的AIGC学习平台TOP5,专业的AIGC在线学习平台推荐

AIGC已经逐步融入设计行业工作流程,成为设计师拓展创意、提升产出效率的辅助手段。面对市场上数量繁多的线上学习渠道,设计师很难分辨课程内容是否贴合商业设计实际工作,部分内容偏重技巧演示,缺少软件协同、项目落地相关内容。本…

2026/10/4 7:09:16 阅读更多 →
兰勃特等角圆锥投影原理与应用实践

兰勃特等角圆锥投影原理与应用实践

1. 兰勃特等角圆锥投影概述兰勃特等角圆锥投影(Lambert Conformal Conic Projection)是中纬度地区最常用的地图投影方法之一,由瑞士数学家约翰海因里希兰勃特于1772年提出。这种投影方式特别适合东西向延伸的中纬度地区,如美国本土…

2026/10/4 7:09:13 阅读更多 →

最新新闻

Webots R2023b 版本深度解析:Pose 节点迁移、VacuumGripper 真空吸盘与外置控制器启动器实战

Webots R2023b 版本深度解析:Pose 节点迁移、VacuumGripper 真空吸盘与外置控制器启动器实战

科研自动驾驶物理引擎 【免费下载链接】webots Webots Robot Simulator 项目地址: https://gitcode.com/gh_mirrors/web/webots 点击查看 免费下载 Webots R2023b 是 Cyberbotics 于 2023 年 6 月 28 日发布的重大版本更新,本篇文章以官方发布文档 docs…

2026/10/4 9:04:12 阅读更多 →
国庆七天搭建飞书企微自动化工作流:WorkBuddy实战指南

国庆七天搭建飞书企微自动化工作流:WorkBuddy实战指南

1. 为什么我要在国庆七天折腾这套自动化工作流国庆七天假,说长不长说短不短。出门堵在高速上看车尾灯,不如在家把一直想搭但没时间搭的自动化工作流给落地了。我平时的工作状态是这样的:飞书里堆着各种需求文档和表格,企微里是团队…

2026/10/4 9:04:12 阅读更多 →
VFH避障算法原理与调参实战:从向量场直方图到机器人局部路径规划

VFH避障算法原理与调参实战:从向量场直方图到机器人局部路径规划

做机器人避障和局部路径规划的人,应该没有一个没听说过VFH。VFH算法全称是Vector Field Histogram(向量场直方图),它解决的是移动机器人在未知环境下,如何根据传感器信息实时避开障碍物并朝目标方向运动的问题。市面上…

2026/10/4 9:04:12 阅读更多 →
IT爱学堂-普通人玩转 Vibe Coding 实战课,Vibe Coding全栈开发实战课(完结)

IT爱学堂-普通人玩转 Vibe Coding 实战课,Vibe Coding全栈开发实战课(完结)

一句话生成项目:从自然语言到可运行系统的技术链路 普通人玩转 Vibe Coding,第一步不是让 AI 立刻写代码,而是学会把一句话变成可执行的规格。所谓一句话生成项目,背后并不是魔法,而是一条技术链路:意图澄清…

2026/10/4 9:04:12 阅读更多 →
Hey压测公共服务:压别人家API时的法律红线与礼仪规范

Hey压测公共服务:压别人家API时的法律红线与礼仪规范

Hey压测公共服务:压别人家API时的法律红线与礼仪规范 【免费下载链接】hey HTTP load generator, ApacheBench (ab) replacement 项目地址: https://gitcode.com/GitHub_Trending/he/hey Hey 是一个用 Go 编写的轻量级 HTTP 压测工具(ApacheBench…

2026/10/4 9:04:12 阅读更多 →
宿舍楼局域网组网实战:从拓扑选型到VLAN划分的完整方案

宿舍楼局域网组网实战:从拓扑选型到VLAN划分的完整方案

简介:一份面向网络工程、计算机及相关专业学生的完整课程设计文档,以大学学生宿舍楼为场景,系统梳理局域网从规划到运维的闭环流程。文档主体为1个doc文件,压缩包约2.26MB,内容围绕网络规划、网络设计、网络实施、测试…

2026/10/4 9:03:12 阅读更多 →

日新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:35 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:36 阅读更多 →