【C语言】使用C语言编写对密码强度的检测,检测出结果:弱、中等、强

2023-11-10

可以使用 C 语言编写一个函数来检测密码强度,以下是一个简单的实现:

#include <stdio.h>
#include <string.h>
#include <ctype.h>

int check_password_strength(char *password) {
    int length = strlen(password);
    int has_lower = 0;
    int has_upper = 0;
    int has_digit = 0;
    int has_special = 0;

    for (int i = 0; i < length; i++) {
        if (islower(password[i])) {
            has_lower = 1;
        }
        if (isupper(password[i])) {
            has_upper = 1;
        }
        if (isdigit(password[i])) {
            has_digit = 1;
        }
        if (!isalnum(password[i])) {
            has_special = 1;
        }
    }

    if (length < 8 || !(has_lower && has_upper && has_digit && has_special)) {
        return 0; // 弱
    } else if (length < 12 || !(has_lower && has_upper && has_digit && has_special)) {
        return 1; // 中等
    } else {
        return 2; // 强
    }
}

int main() {
    char password[100];
    printf("请输入密码:");
    scanf("%s", password);

    int strength = check_password_strength(password);

    if (strength == 0) {
        printf("密码强度为弱\n");
    } else if (strength == 1) {
        printf("密码强度为中等\n");
    } else {
        printf("密码强度为强\n");
    }

    return 0;
}

        该函数会遍历密码字符串,判断密码是否包含至少一个小写字母、一个大写字母、一个数字和一个特殊字符,并根据密码长度和包含字符类型的情况返回密码强度等级。在 main 函数中,用户输入密码,调用 check_password_strength 函数来检测密码强度,并输出结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【C语言】使用C语言编写对密码强度的检测,检测出结果:弱、中等、强 的相关文章

随机推荐

  • MTK Android Driver知识大全

    转载请注明出处 http blog csdn net cbk861110 article details 40931835 一 Display 1 lcm 相关概念 1 1 MIPI接口 一共有三种接口 DBI 也做CPU或MCU接口 DP
  • Vue框架开发Electron12 - 动态改变Element-Ui默认el-Input背景样式

    Element ui是一个非常好的UI设计模块 它提供给我们很多好看的按钮样式 非常适用于快速搭建UI 下面说说如果使用了element ui之后 要更改它默认的el Input样式应该怎么操作 使用调试工具找出他的样式默认表 具体操作如下
  • 爬虫 第三讲 数据解析

    文章目录 爬虫 第三讲 数据解析 一 正则表达式 1 match 函数 search 函数 findall 函数 2 正则表达式中的元字符 3 正则表达式模式 4 正则表达式重复匹配 5 正则表达式中的位置匹配 6 正则表达式中的贪婪与非贪
  • 【Flink】Flink exitCode=239

    1 场景1 1 1 概述 checkpoint 设置3分钟 也失败 我申请的 资源是 yqu realtime yjm 1024 ytm 2048 ys 2
  • ChatGPT和百度文心一言写用例,谁更强?

    文心一言发布的第一时间 就排队申请了邀请码 昨晚看了下 邀请码已经到手 索性就拿一个例子试了一下 看看哪个能够真正意义上的提高生产力 最简单的录制了个GIF动画如下 问题 你是一个软件测试工程师 得到一个需求 软件程序Helios会自动采集
  • shell:遍历目录和子目录的所有文件

    bin bash function getdir for element in ls 1 do dir or file 1 element if d dir or file then getdir dir or file else echo
  • AcWing 861. 二分图的最大匹配

    https www acwing com problem content 863 二分图我不太清楚 我刚做了染色法解决二分图 然后我看了相关资料 https blog csdn net u011815404 article details
  • [4G&5G专题-122]:认证-华为认证概述

    1 链接 https e huawei com cn talent cert navType authNavKey 2 华为认证概述 3 认证等级 HCIA 工程师等级 HCIP 高级工程师等级 HCIE 专家级 4 学习培训 4 1 概述
  • JavaScript中结果转换为带有“千位分隔符”的数字

    在开发有关金额方面需求的时候 我们往往都需要对金额的显示进行一些处理 例如 将金额转换为带有 千位分隔符 的数字 像我们银行卡里的余额 购买商品时的总金额 就会有这一方面的需求 那么到底要怎么样去转换呢 这就需要用到 JavaScript
  • Hexo+Butterfly主题博客添加音乐播放器的简单版教程

    博客添加背景音乐 前言 基于Hexo框架 主题为Butterfly的个人博客 效果图 实现个人博客拥有全局吸底音乐播放器 即背景音乐 实现步骤 添加音乐播放器插件 可选择在vscode webstorm终端运行 一定要在博客项目文件中运行
  • IntelliJ IDEA 的 Spring 项目如何查看 @Value 的配置和值

    当你打开项目或者项目中的文件的时候 如果你有 Spring 的 Value 的配置 Intellij 将会自动将参数替换为值 如果你单击上面的值 那么这个配置参数将会显示为配置的参数名 如果你还想显示值的话 你需要重新打开这个文件或者项目
  • C++ 基础(数组)

    数组 是同一类型的多个元素的集合 声明了一个名为 a 的具有10个整数的数组 数组中的第一个元素 索引为0 设置为50 int a 10 a 0 50 数组初始化语法 int fib 5 0 1 1 2 3 或者使用循环 int array
  • Seaborn5分钟入门(六)——heatmap热力图

    微信公众号 Python读财 如有问题或建议 请公众号留言 Seaborn是基于matplotlib的Python可视化库 它提供了一个高级界面来绘制有吸引力的统计图形 Seaborn其实是在matplotlib的基础上进行了更高级的API
  • 假设检验笔记

    假设检验 就是做了一个假设 H 然后通过实验得到相关的统计数据判断 H 是否 大概率 成立 或者有多大把握认为 H 成立 这个 H 一般是一个与分布 统计量相关的的命题 如 H P 硬 币 朝
  • 图片即时优化的三种简单解决方案

    本文要点 Web页面中的图片往往是页面加载缓慢的最主要原因 图片优化很复杂 涉及大小调整 裁剪 格式转换及质量参数微调 如今 有的云服务可以即时优化图片 极大地改善用户浏览包含图片的Web页面时的体验 云服务提供了简单的API用于操作图片
  • 200. 岛屿数量-Java

    文章目录 200 岛屿数量 https leetcode cn com problems number of islands 题目概述 算法思路 1 深度优先搜索 代码实现 复杂度分析 2 广度优先搜索 分离行与列的方法 代码实现 复杂度分
  • 产品推介

    基线检测服务 正式发布 产品概述 在用户充分授权的情况下 对用户云上系统进行全面的安全基线检测 帮助用户掌握云上系统整体的安全脆弱性状况 并依据检测结果与用户业务模式特点 提供有针对性的安全修补建议 降低系统的安全威胁 漏洞扫描服务 正式发
  • Yule-Walker方程

    零化滤波器的来源 在有限新息率中 参数的估计问题可以转化为谱估计问题 而谱估计问题可以采用零化滤波器算法去解决 其核心在于 z z z变换和Yelu Walker方程的求解 这篇博客重点讲一下Yelu Walker方程的求解 Yelu Wa
  • 毕业设计--基于深度学习的常见苹果叶片病害识别与病斑分割方法研究

    目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求的毕设项目越来越难 有不少课题是研究生级别难度
  • 【C语言】使用C语言编写对密码强度的检测,检测出结果:弱、中等、强

    可以使用 C 语言编写一个函数来检测密码强度 以下是一个简单的实现 include