Admin.Core/src/platform/ZhonTai.Admin/Tools/Captcha/SlideJigsawCaptchaTool.cs
(开头部分) 8KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using Newtonsoft.Json;
using System;
using System.IO;
using System.Threading.Tasks;
using System.Collections.Generic;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Drawing.Processing;
using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.Formats.Png;
using SixLabors.ImageSharp.Drawing;
using SixLabors.ImageSharp.PixelFormats;
using ZhonTai.Admin.Core.Attributes;
using ZhonTai.Admin.Tools.Cache;
namespace ZhonTai.Admin.Tools.Captcha;
/// <summary>
/// 滑块拼图验证
/// </summary>
[SingleInstance]
public class SlideJigsawCaptchaTool : ICaptchaTool
{
private readonly ICacheTool _cache;
private readonly Random _random = new();
public SlideJigsawCaptchaTool(ICacheTool cache)
{
_cache = cache;
}
/// <summary>
/// 随机范围内数字
/// </summary>
/// <param name="startNum"></param>
/// <param name="endNum"></param>
/// <returns></returns>
private int GetRandomInt(int startNum, int endNum)
{
return (endNum > startNum ? _random.Next(endNum - startNum) : 0) + startNum;
}
/// <summary>
/// 随机生成拼图坐标
/// </summary>
/// <param name="originalWidth"></param>
/// <param name="originalHeight"></param>
/// <param name="templateWidth"></param>
/// <param name="templateHeight"></param>
/// <returns></returns>
private PointModel GeneratePoint(int originalWidth, int originalHeight, int templateWidth, int templateHeight)
{
int widthDifference = originalWidth - templateWidth;
int heightDifference = originalHeight - templateHeight;
int x;
if (widthDifference <= 0)
{
x = 5;
}
else
后面还有 216 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
