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 积分,解读结果公开显示在下面。

还没有人解读过这个文件。