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 ? "登录成功" : "登录失败");
}

}

相关文章
|
10月前
|
存储 算法 C#
C# 哈希值计算:MD5/SHA256 加密
本示例展示了C#中使用MD5和SHA256算法生成哈希值的方法,适用于密码加密与数据校验。MD5安全性较低,建议仅用于非敏感场景;密码存储推荐使用SHA256配合盐值以增强安全性。
|
存储 C# 数据库
C# 生成唯一ID,有哪些方法?
【2月更文挑战第12天】
2028 0
|
C# 容器
Winform控件优化之TabControl控件的美化和功能扩展
在基本的TabControl控件使用和功能之上,可以尝试对其进行美化和功能扩展,比如动态删除或添加tab、绘制图标按钮及鼠标hover时的背景变化、Tab从右向左布局的优化处理等。最重要...
4274 0
Winform控件优化之TabControl控件的美化和功能扩展
|
安全 数据安全/隐私保护
什么是受 DRM 保护的内容以及如何删除 DRM 保护
当涉及到数字媒体世界中的内容时,您当然需要借助 DRM(数字版权管理)技术来确保您的创作或内容的安全和保护。让我们简要了解一下什么是受 DRM 保护的内容以及如何删除 DRM 保护。
|
网络协议 网络安全 API
C# 与三菱FX5U PLC通讯交互指南
C# 与三菱FX5U PLC通讯交互指南
3964 121
|
10月前
|
存储 安全 C#
C# 实现简单的登录验证系统
本系统通过用户名密码验证实现安全登录,采用SHA256加盐值哈希加密存储密码,防止明文泄露。结合注册与登录功能,确保用户身份安全,有效抵御密码还原攻击。
|
10月前
|
C#
C# 实现简单的定时任务工具
基于 `System.Timers.Timer` 实现定时任务,支持周期性与单次执行。通过封装 Timer 类,提供启动、停止功能,并包含异常处理,确保任务稳定运行,适用于后台定时操作场景。
|
10月前
|
算法 C#
C# 实现字符串相似度计算(Levenshtein 算法)
介绍计算字符串编辑距离的算法,基于Levenshtein距离实现相似度分析,适用于搜索建议与拼写纠错,附C#代码示例。
|
10月前
|
网络协议 安全 C#
C# 实现基于 TCP 的简单聊天程序(服务端)
基于TcpListener实现TCP聊天服务器,监听指定端口,接收客户端连接并实时转发消息。支持多客户端并发通信,新连接自动加入广播列表,断开后自动移除,确保线程安全与稳定运行。
|
10月前
|
存储 缓存 安全
C# 实现带过期时间的本地缓存工具
基于ConcurrentDictionary与定时清理机制,实现线程安全的本地缓存,支持键值过期自动清除。每分钟扫描并移除过期项,有效防止内存溢出,适用于需短暂存储数据的场景,如用户会话、临时配置等,保障性能与稳定性。