当前位置: 首页 > article >正文

C++安全密码生成与强度检测

目标

密码生成
// Function to generate a random password
std::string generatePassword(int length, bool includeUpper, bool includeNumbers, bool includeSymbols) {
    std::string lower = "abcdefghijklmnopqrstuvwxyz";
    std::string upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    std::string numbers = "0123456789";
    std::string symbols = "!@#$%^&*()_+-=[]{}|;:',.<>?/`~";

    std::string characters = lower;

    if (includeUpper) characters += upper;
    if (includeNumbers) characters += numbers;
    if (includeSymbols) characters += symbols;

    std::random_device rd;
    std::mt19937 generator(rd());
    std::uniform_int_distribution<> dist(0, characters.size() - 1);

    std::string password;
    for (int i = 0; i < length; ++i) {
        password += characters[dist(generator)];
    }

    return password;
}
def generate_strong_password(length):
    characters = string.ascii_letters + string.digits + string.punctuation
    password = ''.join(random.choice(characters) for i in range(length))
    return password

 

 密码检测
// Function to assess password strength
std::string assessPasswordStrength(const std::string& password, bool includeUpper, bool includeNumbers, bool includeSymbols) {
    int length = password.length();
    bool hasLower = false, hasUpper = false, hasDigit = false, hasSymbol = false;

    for (char c : password) {
        if (islower(c)) hasLower = true;
        if (isupper(c)) hasUpper = true;
        if (isdigit(c)) hasDigit = true;
        if (ispunct(c)) hasSymbol = true;
    }

    // Determine password strength
    if (length >= 12 && hasLower && hasUpper && hasDigit && hasSymbol) {
        return GREEN;  // Strong
    } else if (length >= 8 && ((hasUpper && hasLower) || (hasLower && hasDigit) || (hasUpper && hasDigit))) {
        return YELLOW;  // Medium
    } else {
        return RED;  // Weak
    }
}
 效果

pass.exe -l 12 -u -n -s

i7{wQx?qkr-<

参考

GitHub - anlaki-py/pass-gen: Simple/secure password generator that you can quickly run everywhere in your terminal.

C++密码安全检测-CSDN博客


创作不易,小小的支持一下吧!


http://www.kler.cn/a/326807.html

相关文章:

  • windows下安装配置anaconda及常用的conda命令
  • 21.打印文件地址 C#例子
  • pyinstaller打包资源文件和ini配置文件怎么放
  • WebAPI编程(第一天,第二天)
  • Docker 技术系列之安装多版本Mysql5.6和Mysql5.7
  • LLMs之PDF:MinerU(将PDF文件转换成Markdown和JSON格式)的简介、安装和使用方法、案例应用之详细攻略
  • MySql的慢查询(慢日志)
  • 利用koa.js编写一个错误日志采集服务器
  • 详细查看某个文件的相关信息
  • H.264学习笔记
  • cas5.3统一登录前后端分离改造方案(源码)
  • 龙芯+FreeRTOS+LVGL实战笔记(新)——10蜂鸣器嘀嘀嘀
  • 大模型(LLM) 是仅仅比 模型(Model) 更大吗?
  • 第三方供应商不提供API接口?教你四步破解集成难题
  • 选购出海IP要注意什么?
  • Debian 配置 Python 开发与运行环境
  • Docker官网新手入门教程:从零开始玩转容器
  • 使用豆包MarsCode 实现高可用扫描工具
  • makefile和CMakeLists/C++包管理器
  • 七、添加攻击音效
  • 汽车出险报告接口介绍及作用
  • Docekrfile和docker compose编写指南及注意事项
  • Android常用C++特性之std::this_thread
  • python14_运算符复合赋值
  • 【韩顺平Java笔记】第4章:运算符
  • SpringIOCDI