LazyCaptcha
介紹
LazyCaptcha是仿EasyCaptcha和SimpleCaptcha,基於.Net Standard 2.1的圖形驗證碼模塊。
項目地址
效果展示
| CaptchaType | 字體 | 靜態圖 | 動圖 |
|---|---|---|---|
| DEFAULT | Actionj | ![]() |
![]() |
| WORD | Actionj | ![]() |
![]() |
| WORD_LOWER | Actionj | ![]() |
![]() |
| WORD_UPPER | Actionj | ![]() |
![]() |
| WORD_NUMBER_LOWER | Actionj | ![]() |
![]() |
| WORD_NUMBER_UPPER | Actionj | ![]() |
![]() |
| NUMBER | Fresnel | ![]() |
![]() |
| NUMBER_ZH_CN | kaiti | ![]() |
![]() |
| NUMBER_ZH_HK | kaiti | ![]() |
![]() |
| ARITHMETIC | Actionj | ![]() |
![]() |
| ARITHMETIC_ZH | Actionj | ![]() |
![]() |
| 字體 | 圖片 |
|---|---|
| Actionj | ![]() |
| Epilog | ![]() |
| Fresnel | ![]() |
| Headache | ![]() |
| Kaiti | ![]() |
| Lexo | ![]() |
| Prefix | ![]() |
| Progbot | ![]() |
| Ransom | ![]() |
| Robot | ![]() |
| Scandal | ![]() |
安裝教程
Install-Package Lazy.Captcha.Core
使用說明(以Github內使用方式為准,這里不做同步更新)
- 注冊服務
默認設置
builder.Services.AddDistributedMemoryCache().AddCaptcha();
詳細設置
builder.Services.AddDistributedMemoryCache().AddCaptcha(option =>
{
option.CaptchaType = CaptchaType.DEFAULT; // 驗證碼類型
option.CodeLength = 4; // 驗證碼長度, 要放在CaptchaType設置后
option.ExpiryTime = TimeSpan.FromSeconds(30); // 驗證碼過期時間
option.IgnoreCase = true; // 比較時是否忽略大小寫
option.ImageOption.Animation = false; // 是否啟用動畫
option.ImageOption.Width = 130; // 驗證碼寬度
option.ImageOption.Height = 48; // 驗證碼高度
option.ImageOption.BackgroundColor = SixLabors.ImageSharp.Color.White; // 驗證碼背景色
option.ImageOption.BubbleCount = 2; // 氣泡數量
option.ImageOption.BubbleMinRadius = 5; // 氣泡最小半徑
option.ImageOption.BubbleMaxRadius = 15; // 氣泡最大半徑
option.ImageOption.BubbleThickness = 1; // 氣泡邊沿厚度
option.ImageOption.InterferenceLineCount = 2; // 干擾線數量
option.ImageOption.FontSize = 28; // 字體大小
option.ImageOption.FontFamily = DefaultFontFamilys.Instance.Actionj; // 字體,中文使用kaiti,其他字符可根據喜好設置(可能部分轉字符會出現繪制不出的情況)。
});
- Controller
public class CaptchaController : Controller
{
private readonly ILogger<CaptchaController> _logger;
private readonly ICaptcha _captcha;
public CaptchaController(ILogger<CaptchaController> logger, ICaptcha captcha)
{
_logger = logger;
_captcha = captcha;
}
[HttpGet]
[Route("/captcha")]
public IActionResult Captcha(string id)
{
var info = _captcha.Generate(id);
var stream = new MemoryStream(info.Bytes);
return File(stream, "image/gif");
}
[HttpGet]
[Route("/captcha/validate")]
public bool Validate(string id, string code)
{
if (!_captcha.Validate(id, code))
{
throw new Exception("無效驗證碼");
}
// 具體業務
// 為了演示,這里僅做返回處理
return true;
}
}

































