Admin.Core/src/platform/ZhonTai.Admin/Tools/Captcha/VerifyCodeHelper.cs
(开头部分) 3KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using SixLabors.Fonts;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Drawing.Processing;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing;
using System;
using System.IO;
using System.Linq;
using System.Text;
using ZhonTai.Admin.Core.Attributes;
using ZhonTai.Admin.Core.Configs;
namespace ZhonTai.Admin.Tools.Captcha;
[SingleInstance]
public class VerifyCodeHelper
{
private readonly AppConfig _appConfig;
public VerifyCodeHelper(AppConfig appConfig)
{
_appConfig = appConfig;
}
private static string GenerateRandom(int length)
{
var chars = new StringBuilder();
//验证码的字符集,去掉了一些容易混淆的字符
char[] character = { '2', '3', '4', '5', '6', '8', '9', 'a', 'b', 'd', 'e', 'f', 'h', 'k', 'm', 'n', 'r', 'x', 'y', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'R', 'S', 'T', 'W', 'X', 'Y' };
var rnd = new Random();
//生成验证码字符串
for (int i = 0; i < length; i++)
{
chars.Append(character[rnd.Next(character.Length)]);
}
return chars.ToString();
}
public byte[] Draw(out string code, int length = 4)
{
int width = 110;
int height = 36;
int fontSize = 22;
//颜色列表,用于验证码、噪线、噪点
Color[] colors = { Color.Black, Color.Red, Color.Blue, Color.Green, Color.Orange, Color.Brown, Color.Brown, Color.DarkBlue };
//字体列表,用于验证码
string[] fonts = _appConfig.VarifyCode.Fonts;
var chars = GenerateRandom(length);
code = chars;
using var img = new Image<Rgba32>(width, height, Color.White);
img.Mutate(ctx =>
{
var rnd = new Random();
//画噪线
for (int i = 0; i < 1; i++)
{
后面还有 49 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
