Tạo mã Captcha bằng C#

Hướng dẫn cách tạo mã Captcha bằng C# để bảo vệ các form web và ứng dụng khỏi các truy cập tự động. Bài viết giúp bạn hiểu cách sử dụng thư viện `System.Drawing` để tạo hình ảnh Captcha.

Trong bài viết này, bạn sẽ học cách tạo một mã Captcha đơn giản bằng cách sử dụng thư viện System.Drawing trong C#. Mã Captcha sẽ được tạo thành từ chuỗi ký tự ngẫu nhiên và hiển thị dưới dạng hình ảnh.

Mã C#:

using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

class CaptchaGenerator
{
    public static void Main(string[] args)
    {
        string captchaCode = GenerateRandomCode(6);
        Console.WriteLine("Captcha code: " + captchaCode);

        using (Bitmap bitmap = new Bitmap(200, 80))
        using (Graphics g = Graphics.FromImage(bitmap))
        {
            // Thiết lập phông nền
            g.Clear(Color.White);
            Font font = new Font("Arial", 30, FontStyle.Bold, GraphicsUnit.Pixel);
            Brush brush = new SolidBrush(Color.Black);

            // Vẽ chuỗi mã Captcha
            g.DrawString(captchaCode, font, brush, new PointF(20, 20));

            // Lưu ảnh Captcha thành file
            bitmap.Save("captcha.png", ImageFormat.Png);
        }

        Console.WriteLine("Captcha image saved as captcha.png");
    }

    // Tạo mã Captcha ngẫu nhiên
    private static string GenerateRandomCode(int length)
    {
        const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        Random random = new Random();
        char[] code = new char[length];

        for (int i = 0; i < length; i++)
        {
            code[i] = chars[random.Next(chars.Length)];
        }

        return new string(code);
    }
}

Giải thích chi tiết từng dòng code:

  1. GenerateRandomCode(int length): Tạo một chuỗi ngẫu nhiên gồm các ký tự chữ và số với độ dài xác định.
  2. Main():
    • Tạo mã Captcha ngẫu nhiên bằng cách sử dụng GenerateRandomCode.
    • Tạo một hình ảnh Bitmap kích thước 200x80.
    • Sử dụng lớp Graphics để vẽ mã Captcha lên hình ảnh.
    • Lưu hình ảnh dưới dạng file captcha.png.

Yêu cầu hệ thống:

  • C# 7.0 hoặc mới hơn
  • .NET Framework 4.5 trở lên
  • Thư viện System.Drawing

Cách cài đặt các thư viện để chạy được đoạn mã C# trên:

Đối với các dự án .NET Core, bạn cần cài đặt gói System.Drawing.Common thông qua lệnh sau:

dotnet add package System.Drawing.Common

Lời khuyên:

  • Thêm nhiễu và các đường gạch chéo vào hình ảnh Captcha để tăng độ bảo mật.
  • Sử dụng phông chữ khác nhau hoặc xoay các ký tự để làm cho mã Captcha khó đọc hơn bởi các bot.
Tags: C#, Captcha


Các Hướng Dẫn Cùng Chủ Đề Đang Xem

Cách UPDATE dữ liệu từ database MySQL bằng C#

Hướng dẫn cách sử dụng Prepared Statements trong C# để cập nhật dữ liệu trong bảng MySQL một cách an toàn và hiệu quả với nhiều tham số.
Gửi đoạn mã JavaScript vào website bằng Selenium trong C#

Hướng dẫn cách sử dụng Selenium trong C# để gửi một đoạn mã JavaScript vào một website mở trong trình duyệt Chrome. Bài viết sẽ cung cấp mã mẫu và giải thích chi tiết từng bước.
Cách GET dữ liệu JSON từ API bằng C#

Hướng dẫn cách lấy dữ liệu JSON từ một API bằng C#, sử dụng lớp HttpClient và thư viện Newtonsoft.Json để xử lý dữ liệu.
Cách mở ứng dụng Notepad bằng C#

Hướng dẫn cách mở ứng dụng Notepad sử dụng C# thông qua lớp `Process` trong .NET. Bài viết này sẽ giúp lập trình viên C# biết cách thao tác với các ứng dụng bên ngoài thông qua mã lệnh đơn giản.
Xác thực JSON Web Token (JWT) trong C#

Hướng dẫn cách triển khai xác thực JSON Web Token (JWT) trong C#. Bài viết sẽ chỉ ra cách tạo, ký và xác thực JWT để bảo mật API và xác thực người dùng.
Cách tự động đăng nhập vào website sử dụng Selenium với Chrome trong C#

Hướng dẫn cách sử dụng Selenium trong C# để tự động đăng nhập vào một trang web. Bài viết sẽ sử dụng trình duyệt Chrome và trình bày cách thực hiện từng bước để tự động hóa quy trình đăng nhập.
Cách chuyển đổi chữ cái Unicode có dấu thành không dấu trong C#

Hướng dẫn chi tiết cách chuyển đổi các ký tự Unicode có dấu tiếng Việt thành ký tự không dấu bằng C#.
Hướng dẫn đọc nội dung file Excel bằng C#

Hướng dẫn chi tiết cách đọc nội dung từ file Excel (.xlsx, .xls) bằng C#, sử dụng thư viện EPPlus với các bước cài đặt và ví dụ minh họa cụ thể.
Cách ghi nội dung vào file Excel trong C#

Hướng dẫn chi tiết cách ghi nội dung vào file Excel trong C# bằng cách sử dụng thư viện EPPlus, giúp bạn dễ dàng lưu trữ và quản lý dữ liệu trong các bảng tính Excel.
Chuyển chuỗi markdown sang HTML bằng C#

Hướng dẫn cách chuyển đổi chuỗi markdown thành HTML trong C# bằng cách sử dụng thư viện MarkdownSharp.

Đã thêm vào giỏ hàng