1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/sunkaixuan-sqlsugar_orm_4-0

 / Детали:

Оптимизация рекомендаций для капчи (в данном контексте это "капча" или "валидационный код"): 1....

Предстоит сделать
Владелец
Создано  
18.04.2025

Улучшение читаемости кода: Используйте различные стили шрифтов, цвета и размеры для усложнения распознавания машинами. 2. Добавление фоновых шумов: Введение случайных шумов на изображении может сделать автоматическое распознавание сложнее. 3. Использование искажений: Искажение букв и цифр может помочь предотвратить автоматическое распознавание. 4. Включение альтернативных методов проверки: Предоставление альтернативных методов проверки, таких как проверка по электронной почте или SMS, может улучшить удобство для пользователей. 5. Использование CAPTCHA с аудио: Предоставление альтернативного аудио CAPTCHA может помочь пользователям с ограниченными возможностями. 6. Обеспечение безопасности: Убедитесь, что ваша система CAPTCHA защищена от атак и может эффективно различать людей и ботов. 7. Улучшение пользовательского опыта: Убедитесь, что CAPTCHA легко читаема и не создает проблем для пользователей. 8. Использование современных технологий: Используйте современные технологии CAPTCHA, такие как hCaptcha или reCAPTCHA, которые используют машинное обучение для улучшения точности и удобства использования. 9. Тестирование и мониторинг: Регулярно тестируйте и мониторьте систему CAPTCHA для выявления и устранения проблем.10. Обеспечение конфиденциальности: Убедитесь, что ваша система CAPTCHA не собирает или не использует конфиденциальную информацию пользователя.

Предыдущий private static byte[] GenerateImage(string code) имел серьезные проблемы совместимости на Linux или в контейнерах Docker, поэтому был заменен на SixLabors.ImageSharp.

using System;
using System.Text;
using System.IO;
using SixLabors.Fonts;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.Drawing;
using SixLabors.ImageSharp.Drawing.Processing;
using System.Linq;

namespace ReZero.SuperAPI
{
    /// <summary>
    /// ** Описание: класс для генерации验证码类
    /// ** 创建时间:2015-6-30
    /// ** 修改时间:-
    /// ** 修改人:sunkaixuan
    /// </summary>
    public class VerifyCodeSugar
    {
        private static readonly char[] chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".ToCharArray();
        private static readonly Random random = new Random();
        internal static (string, byte[]) Create()
        {
            string code = GenerateCode(4);
            byte[] imageBytes = GenerateImage(code);
            return (code, imageBytes);
        }

        private static string GenerateCode(int length)
        {
            StringBuilder sb = new StringBuilder(length);
            for (int i = 0; i < length; i++)
            {
                sb.Append(chars[random.Next(chars.Length)]);
            }
            return sb.ToString();
        }

        private static byte[] GenerateImage(string code)
        {
            int width = 100;
            int height = 40;

            using var image = new Image<Rgba32>(width, height);
            image.Mutate(ctx =>
            {
                ctx.Fill(Color.White);

                var font = SystemFonts.CreateFont("Arial", 20);

                var textOptions = new RichTextOptions(font)
                {
                    HorizontalAlignment = HorizontalAlignment.Center,
                    VerticalAlignment = VerticalAlignment.Center,
                    Origin = new PointF(width / 2f, height / 2f)
                };

                ctx.DrawText(textOptions, code, Color.DarkBlue);
            });

            using var ms = new MemoryStream();
            image.SaveAsPng(ms);
            return ms.ToArray();
        }
    }
}

Комментарий (0)

GitLife Service Account Задача создана

Вход Перед тем как оставить комментарий

Статус
Ответственный
Контрольная точка
Pull Requests
Связанные запросы на слияние могут быть закрыты после их объединения
Ветки
Дата начала   -   Крайний срок
-
Закрепить/Открепить
Приоритет
Участники(1)
1
https://api.gitlife.ru/oschina-mirror/sunkaixuan-sqlsugar_orm_4-0.git
git@api.gitlife.ru:oschina-mirror/sunkaixuan-sqlsugar_orm_4-0.git
oschina-mirror
sunkaixuan-sqlsugar_orm_4-0
sunkaixuan-sqlsugar_orm_4-0