C# 实现验证码 + 登录的整合案例

简介: 整合图形验证码与用户登录功能,实现安全的登录验证流程。系统生成验证码图片并校验输入,结合用户名密码双重验证,提升账户安全性,有效防止自动化攻击。

将图形验证码和用户登录功能整合,实现带验证码的登录验证流程。
public class CaptchaLoginSystem
{
// 生成图形验证码并返回验证码文本
public static string GenerateCaptchaImage(string outputPath)
{
var captcha = CaptchaDemo.GenerateCaptcha(4);
// 调用之前的图形验证码生成方法
WinFormsCaptcha.GenerateCaptchaImage(captcha, outputPath);
return captcha;
}

// 登录验证(用户名+密码+验证码)
public static bool Login(string username, string password, string inputCaptcha, string realCaptcha)
{
    // 验证验证码
    if (!string.Equals(inputCaptcha, realCaptcha, StringComparison.OrdinalIgnoreCase))
    {
        Console.WriteLine("验证码错误!");
        return false;
    }
    // 验证用户名密码
    return LoginSystem.Login(username, password);
}

// 调用示例
public static void TestLogin()
{
    string captchaPath = "captcha.png";
    string realCaptcha = GenerateCaptchaImage(captchaPath);
    Console.WriteLine("验证码图片已生成,请查看: " + captchaPath);

    Console.Write("用户名: ");
    string user = Console.ReadLine();
    Console.Write("密码: ");
    string pwd = Console.ReadLine();
    Console.Write("验证码: ");
    string inputCaptcha = Console.ReadLine();

    bool success = Login(user, pwd, inputCaptcha, realCaptcha);
    Console.WriteLine(success ? "登录成功" : "登录失败");
}

}

相关文章
|
4月前
|
存储 算法 C#
C# 哈希值计算:MD5/SHA256 加密
本示例展示了C#中使用MD5和SHA256算法生成哈希值的方法,适用于密码加密与数据校验。MD5安全性较低,建议仅用于非敏感场景;密码存储推荐使用SHA256配合盐值以增强安全性。
|
存储 C# 数据库
C# 生成唯一ID,有哪些方法?
【2月更文挑战第12天】
1867 0
|
JSON JavaScript 前端开发
mvc的Controller返回值类型ActionResult详解
一、简介 ActionResult  操作方法通过执行工作并返回操作结果来响应用户输入。 操作结果表示框架将代表操作方法执行的命令。 ActionResult 类是操作结果的基类。 以下类型从 ActionResult 派生: ContentResult EmptyResul...
1847 0
|
8月前
|
网络协议 网络安全 API
C# 与三菱FX5U PLC通讯交互指南
C# 与三菱FX5U PLC通讯交互指南
2751 121
|
4月前
|
存储 安全 C#
C# 实现简单的登录验证系统
本系统通过用户名密码验证实现安全登录,采用SHA256加盐值哈希加密存储密码,防止明文泄露。结合注册与登录功能,确保用户身份安全,有效抵御密码还原攻击。
|
安全 前端开发 Java
理解 Spring Security 的 HttpMethod 和路径匹配
本文深入解析了Spring Security中`HttpMethod`与路径匹配的使用方法及其常见问题。通过具体示例,阐明了如何针对不同HTTP方法(如GET、POST)和路径(如`/api/products`与`/products`)设置权限,避免用户绕过限制访问核心数据。同时,强调了配置顺序和角色前缀的重要性,并提供了最佳实践,帮助开发者精准控制应用的安全性。
384 1
|
JavaScript 前端开发 IDE
【Vue3 第十二章】组件注册 & 命名格式
【Vue3 第十二章】组件注册 & 命名格式
818 0
|
物联网 C#
【C#】简单的蓝牙通讯功能实现
【C#】简单的蓝牙通讯功能实现
1039 0
|
Docker 容器
docker 安装cloudreve
docker 安装cloudreve
423 2
|
XML JSON 程序员
总结一下 .NET FrameWork 和 .NET Core 创建的项目的不同点
总结一下 .NET FrameWork 和 .NET Core 创建的项目的不同点
512 0

热门文章

最新文章