using System; using System.Drawing; using System.Drawing.Imaging; using System.IO; public class CaptchaService { private string generatedCaptchaCode; // 生成验证码图像并返回Base64字符串 public (string captchaImage, string captchaCode) GenerateCaptcha() { generatedCaptchaCode = GenerateRandomCode(5); // 生成5位随机字符 Bitmap bitmap = new Bitmap(100, 40); using (Graphics g = Graphics.FromImage(bitmap)) { g.Clear(Color.White); using (Font font = new Font("Arial", 20)) { g.DrawString(generatedCaptchaCode, font, Brushes.Black, 10, 10); } } using (MemoryStream ms = new MemoryStream()) { bitmap.Save(ms, ImageFormat.Png); string base64Image = Convert.ToBase64String(ms.ToArray()); return (base64Image, generatedCaptchaCode); } } // 验证用户输入的验证码 public bool ValidateCaptcha(string userInput) { return userInput.Equals(generatedCaptchaCode, StringComparison.OrdinalIgnoreCase); } // 生成随机字符 private string GenerateRandomCode(int length) { const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; Random random = new Random(); return new string(Enumerable.Repeat(chars, length) .Select(s => s[random.Next(s.Length)]).ToArray()); } }