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:
-
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. -
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
.
- Tạo mã Captcha ngẫu nhiên bằng cách sử dụng
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.