Введение:Наука и техника являются основными производительными силами.Эволюция технологий будет в значительной степени способствовать модернизации бизнеса.В то же время эволюция бизнеса будет способствовать дальнейшему развитию технологий на более высокий уровень.Технологическое развитие интеллектуальной проверки код тоже похож.
Прежде всего, я очень рад поделиться с вами своей практикой и исследованиями в области атаки и защиты капчи. я в основном делаюСлужба защиты от мошенничествасвязанная работа, недавно вступил в контакт с соответствующими технологиями, такими как OpenCV, Tensorflow, Tesseract, ThreeJS и т. д., и услышал введение Puppeteer на собрании по обмену.После полугода исследований эти технологии были интегрированы, а основная проверка коды на рынке были выполнены в Node. Ряд наступательных и оборонительных упражнений.
1. ПРОВЕРКА
Полностью автоматизированный публичный тест Тьюринга, чтобы отличить компьютеры от людей (CAPTCHA), широко известный как полностью автоматизированный публичный тест Тьюринга, чтобы отличить компьютеры от людейкод верификации, — общедоступная полностью автоматическая программа, которая различает, является ли пользователь компьютером или человеком. В тесте CAPTCHA компьютер в качестве сервера автоматически генерирует вопрос, на который должен ответить пользователь. Этот вопрос может сгенерировать и оценить компьютер, но ответить на него может только человек. Поскольку компьютеры не могут отвечать на вопросы CAPTCHA, пользователь, который отвечает на вопрос, может считаться человеком.
2. Введение
Термин CAPTCHA был впервые введен в 2002 году Луи фон Аном, Мануэлем Блюмом, Николасом Дж. Хоппером из Университета Карнеги-Меллона и Джоном Лэнгфордом из IBM. Университет Карнеги-Меллона пытался зарегистрировать этот термин как товарный знак, но 21 апреля 2008 г. заявка была отклонена. Обычно используемый тест CAPTCHA состоит в том, чтобы попросить пользователя ввести искаженное изображение, отображаемое на тексте или числах, искажение должно избежать автоматического распознавания компьютерной программой, такой как оптическое распознавание символов (OCR, оптическое распознавание символов) на изображении. буквенно-цифровые и теряют свою силу. Поскольку тест проводится компьютером для человека, а не компьютером, как в стандартном тесте Тьюринга, CAPTCHA иногда называют обратным тестом Тьюринга.
Для людей с ограниченными возможностями, которые не могут видеть изображения, альтернативным методом является использование голоса для чтения буквенно-цифровых символов.Чтобы распознавание голоса не анализировало голос, содержание голоса будет содержать бормотание или изменения голоса, которые все еще приемлемы для людей.
Согласно определению теста CAPTCHA, алгоритм, который создает изображение CAPTCHA, должен быть раскрыт, даже если алгоритм может быть запатентован. Это делается для того, чтобы доказать, что для взлома требуется решить другую головоломку ИИ, а не просто обнаружить исходный (секретный) алгоритм, который можно получить с помощью реверс-инжиниринга или чего-то подобного.
3. Функция
Предотвратите злонамеренный взлом паролей, считывание билетов, флуд на форуме и считывание страниц. Эффективно предотвратите постоянные попытки хакера войти в систему для определенного зарегистрированного пользователя с помощью определенного метода взлома программы.На самом деле, использование кодов подтверждения является распространенным методом для многих веб-сайтов (таких как личный онлайн-банк China Merchants Bank, сообщество Baidu ), мы используем относительно простой способ достижения этой функции. Хотя вход в систему немного сложнее, эта функция по-прежнему необходима и важна для защиты паролей пользователей сети. Тем не менее, мы все же напоминаем всем, чтобы защитить свои пароли, старайтесь использовать более 6-значных паролей, смешанных с цифрами, буквами и символами, Ваш аккаунт был украден, чтобы доставить себе ненужные неприятности.
Код подтверждения обычно состоит из нескольких строк и нескольких неправильных символов.Основная функция состоит в том, чтобы предотвратить кражу данных пароля некоторыми хакерами.
Типичные сценарии применения:
безопасность сайта: Спам-регистрация, злонамеренный логин, кража аккаунта
Безопасность данных: Очистка данных, уничтожение данных
Эксплуатационная безопасность: Злонамеренное смахивание, поддельные всплески, поддельные комментарии.
Безопасность торговли: фальшивая транзакция, злонамеренный обналичивание, платеж по украденной карте
4. Принцип работы
Интеллектуальные продукты проверки Tongdun в основном предназначены для различных бизнес-сценариев предприятий, используя методы биологического поведения и машинного обучения для предоставления услуг проверки «человек-машина», предотвращения нереального трафика людей и атак вредоносных программ, а также помогают снизить бизнес-риски.
Используйте интеллектуальный проверочный код Tongdun, чтобы попрощаться с раздражающими и хрупкими проверочными кодами, улучшить взаимодействие с пользователем и расширить возможности защиты безопасности. Держитесь подальше от спам-сообщений, злонамеренной регистрации, спам-текстовых сообщений, считывания билетов и других интерактивных проблем с безопасностью.
Его рабочий процесс показан на следующем рисунке:
5. Классификация проверочного кода
-
Код подтверждения изображения персонажа
Символьный код проверки изображения представляет собой изображение, полученное путем расположения арабских цифр, английских букв и китайских символов в соответствии с определенными правилами и добавления помех.
-
поведенческий код проверки
поведенческий код проверкиЭто более популярный проверочный код. В буквальном смысле это означает завершение проверки с помощью поведения пользователя без необходимости чтения искаженного изображения и текста. Есть два распространенных типа: перетаскивание и касание.
-
Умный проверочный код
Умный проверочный кодЭто различие между человеком и машиной, основанное на знании языка. Интеллектуальный проверочный код, который проверяет когнитивные способности машинного языка, будет важным выбором в течение определенного периода времени в будущем. Типичные представители включают выбор порядка слов и пространственное мышление.
5.1 Используемые родственные технологии
- OpenCV
- Tensorflow
- Node
- Tesseract
- Python
- использование библиотеки node-tesseract & gm & node-cmd
- ThreeJs & Java 3D
6. Взлом кода подтверждения изображения персонажа
Бинарное изображение(Бинаризация изображения) — это процесс установки значения серого пикселей на изображении на 0 или 255, то есть процесс представления всего изображения с очевидным черно-белым эффектом.
В цифровой обработке изображений бинарное изображение занимает очень важное место.Бинаризация изображения значительно уменьшает количество данных в изображении, так что контур цели может быть выделен.
6.1 Шумоподавление с помощью gm
Основная цель — удалить с изображения всю мешающую информацию, такую как фоновые точки, линии и т. д.
/**
* 对图片进行阈值处理(默认55%)
* thresholdValue,降噪值
*/
async function disposeImg(imgPath, newPath, thresholdValue) {
return new Promise((resolve, reject) => {
gm(imgPath).threshold(thresholdValue || '55%').write(newPath, (err) => {
if (err) return reject(err);
resolve(newPath);
});
});
}
6.2 Распознавание OCR с использованием tesseract
6.3 Введение в Тессеракт
Слово Tesseract (/'tesərækt/) означает «гиперкуб», имея в виду четырехмерный стандартный куб в геометрии, также известный как «правильный октаэдр», который является широко используемым инструментом OCR с открытым исходным кодом.
Tesseract имеет 30-летнюю историю: он начинался как запатентованное программное обеспечение, разработанное HP Labs в 1985 г. К 1995 г. он стал одним из самых точных механизмов распознавания в индустрии OCR. Однако вскоре HP решила отказаться от OCR-бизнеса, с тех пор Tesseract оказался в пыли. Через несколько лет HP поняла, что вместо того, чтобы положить Tesseract на полку, она могла бы также внести свой вклад в открытый исходный код и вернуть его к жизни. В 2005 году Tesseract был приобретен Институтом информационных технологий штата Невада и обратился к Google для улучшения Tesseract, устранения ошибок, оптимизации работы и открытия исходного кода.С тех пор он спонсируется Google для последующей разработки и обслуживания. Из-за его бесплатного и хорошего эффекта многие отдельные разработчики и некоторые небольшие команды используют Tesseract, такие как распознавание проверочного кода, распознавание номерных знаков и другие приложения, увидеть Tesseract нетрудно.
Сейчас Tesseract размещен на Github, если вам интересно, вы можете перейти на Star или Frok на Github.этот проект.
Так называемое OCR (оптическое распознавание символов) относится к процессу сканирования текстовых данных, а затем к анализу и обработке файлов изображений для получения информации о тексте и макете. OCR — это подраздел в области распознавания изображений, который фокусируется на распознавании текстовой информации в изображениях и преобразовании их в текст, который можно редактировать в обычных текстовых редакторах.
Используйте Tesseract для распознавания OCR на изображении с шумоподавлением.Tesseract поддерживает 107 языков, которые можно вызывать через агент node-tesseract или напрямую через node-cmd для выполнения команды Tesseract. В качестве среднего уровня узел может напрямую вызывать упакованный пакет узла, или напрямую выполнять базовую команду, или вызывать сценарий Python.
Распознавание OCR через node-tesseract
async function recognizeImg(imgPath, options) {
//tesseract --list-langs,语言选项
options = Object.assign({
psm: 7, //-psm 7 表示告诉tesseract code.jpg图片是一行文本,这个参数可以减少识别错误率,默认为3
}, options);
//console.log(options);
return new Promise((resolve, reject) => {
tesseract.process(imgPath, options, (err, text) => {
if (err) return reject(err);
resolve(text.replace(/[\r\n\s]/gm, '')); // 去掉识别结果中的换行回车空格
});
});
}
6.4 tesseract для распознавания OCR
async function execute(imgPath) {
return new Promise((resolve, reject) => {
NodeCmd.get(`tesseract ${imgPath} stdout -l chi_sim`,
function (err, data) {
if (!err) {
resolve(data);
} else {
reject(err);
}
},
);
});
}
6.5 Платформа кодирования
Машина автоматически распознает код проверки изображения, который может иметь высокую степень точности для простых ситуаций, но точность кода проверки изображения со многими помехами и сложной деформацией будет очень низкой. Из-за растущей важности кодов проверки изображений широко используются сложные коды проверки изображений, что привело к появлению искусственных платформ распознавания кодов проверки, реализованных в последние годы с помощью краудсорсинга. Принцип его работы показан ниже:
Коды подтверждения изображения символьного типа в основном исчезли, а коды подтверждения вступили в эру поведенческой проверки.
7. Взлом кода проверки поведения
Основная идея поведенческой проверки заключается в использовании «поведенческих характеристик» пользователя для вынесения суждений о безопасности проверки. Вся структура проверки использует эффективную активную структуру «песочницы поведения», которая помогает пользователям генерировать конкретные данные о поведении в «песочнице поведения» и использует алгоритм «различения множественного составного поведения» для анализа нескольких видов поведения, таких как конкретное указание, зрение, и мышление.В информации идентифицируются характеристики биологических лиц, чтобы обеспечить точность и быстроту результатов проверки.
Но с появлением puppeteer защита от поведенческой капчи перестала быть эффективной. Логотип Puppeteer очень яркий, как следует из названия, он выглядит как управляемая марионетка и марионетка.
Puppeteer — это библиотека Node, которая предоставляет высокоуровневый API для управления Chrome (или Chromium) через протокол DevTools. С точки зрения непрофессионала, это безголовый хром-браузер (его также можно настроить с помощью пользовательского интерфейса, по умолчанию нет)
Сделать скриншот указанной области через page.screenshot программы puppetter, если jQuery не введен на страницу через page.addScriptTag, то обработку скриншота нужно использовать позже. Используйте подобиеjs/compareImages, чтобы сравнить изображения, чтобы получить изображение расстояния скольжения, прочитать изображение в памяти через холст, получить окончательное расстояние скольжения, вызвать кукловод, чтобы присоединиться к симуляции человеческого поведения, и, наконец, пройти проверку.
Puppeteer — Введение в безголовые браузеры
7.1 Конфигурация браузера
const browser = await puppeteer.launch({
args: ['--start-maximized'],//讓開啟來的瀏覽器預設最大
executablePath: '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
//executablePath: '/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary',
//executablePath: '/Applications/Chromium.app/Contents/MacOS/Chromium',
//devtools: true,
headless: false, //这里我设置成false主要是为了让大家看到效果,设置为true就不会打开浏览器
});
Конфигурация, связанная с 7.2UA
// 设置浏览器信息
const UA = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko)' +
' Chrome/69.0.3497.100 Safari/537.36';
await Promise.all([
page.setUserAgent(UA),
// 允许运行js
page.setJavaScriptEnabled(true),
// 设置浏览器视窗
page.setViewport({
width: 1280,
height: 748,
}),
]);
7.3 Информация об обнаружении передачи человеком-машиной кукловода
await page.evaluateOnNewDocument(() => {
Object.defineProperty(navigator, 'webdriver', {
get: () => false,
});
Object.defineProperty(navigator, 'plugins', {
get: () => [1, 2, 3, 4, 5],
});
const originalQuery = window.navigator.permissions.query;
return window.navigator.permissions.query = (parameters) => (
parameters.name === 'notifications' ?
Promise.resolve({state: Notification.permission}) :
originalQuery(parameters)
);
});
7.4 Внедрение скриптов jQuery
await page.addScriptTag({url: 'https://cdn.bootcss.com/jquery/3.2.0/jquery.min.js'});
Основная цель внедрения jQuery — облегчить операции Dom и выполнить обработку захвата изображения во время скользящей проверки.
7.5 Обработка скриншотов
// 截屏
await screenshot(captionPosition, './screenshots/xxx.png');
await cropImage('./screenshots/xxx.png', './screenshots/xxx.png');
Наконец, через Puppetter открывается браузер для реализации автоматических снимков экрана, автоматических имитационных кликов и функций автоматического входа в систему.
Поведенческий проверочный код в основном пал, а проверочный код вступил в эпоху ИИ.
8. Интеллектуальный взлом проверочного кода
Код проверки, основанный на распознавании языка и структурированном графе знаний, может эффективно предотвращать атаки и повышать точность идентификации человека и машины. Здесь представлены два инструмента, OpenCV и Tensorflow, которые в основном используются для распознавания изображений и глубокого обучения.
8.1Inception V1
GoogLeNet впервые появился и выиграл конкурс ILSVRC 2014 года. Этот выпуск часто называют Inception V1. Inception V1 имеет глубину 22 слоя и размер параметра 5M. Производительность VGGNet за тот же период аналогична производительности Inception V1, но количество параметров также намного больше, чем у Inception V1.
Начальный модуль является основным компонентом GoogLeNet, а базовая структура начального модуля состоит из четырех компонентов. 1 1 свертка, 3 3 свертка, 5 5 свертка, 3 3 максимальное объединение. Наконец, результаты четырех компонентных операций объединяются в канале. Это основная идея начального модуля. Информация о различных масштабах изображения извлекается через несколько ядер свертки и, наконец, объединяется, что позволяет получить лучшее представление изображения. Структура выглядит следующим образом:
8.2 Классификация маркировки изображений Inception V5 и распознавание лиц
Последняя обученная модель Inception V5 может распознавать категории изображений около 1000. Через opencv4nodejs обученную модель можно вызывать для классификации и маркировки изображений, обнаружения лиц и других функций распознавания изображений.
предоставлено Googleinception5hВведение модели
8.3 Полная маркировка изображений и распознавание лиц на основе opencv4nodejs
const cv = require('opencv4nodejs');
const fs = require('fs');
const path = require('path');
const gm = require('gm');
const imageMagick = gm.subClass({imageMagick: true});
const DIRECTION = {
NorthWest: 'NorthWest',
North: 'North',
NorthEast: 'NorthEast',
West: 'West',
Center: 'Center',
East: 'East',
SouthWest: 'SouthWest',
South: 'South',
SouthEast: 'SouthEast',
};
if (!cv.xmodules.dnn) {
throw new Error('exiting: opencv4nodejs compiled without dnn module');
}
// 载入模型
const inceptionModelPath = './models/tf-inception';
const modelFile = path.resolve(inceptionModelPath, 'tensorflow_inception_graph.pb');
const classNamesFile = path.resolve(inceptionModelPath, 'imagenet_comp_graph_label_strings_cn.txt');
/*const inceptionModelPath = './models/flower';
const modelFile = path.resolve(inceptionModelPath, 'retrained_graph.pb');
const classNamesFile = path.resolve(inceptionModelPath, 'retrained_labels.txt');*/
if (!fs.existsSync(modelFile) || !fs.existsSync(classNamesFile)) {
console.log('exiting: could not find inception model');
console.log('download the model from: https://storage.googleapis.com/download.tensorflow.org/models/inception5h.zip');
return;
}
console.log('load models:' + inceptionModelPath);
// 模型和分类标签
const classNames = fs.readFileSync(classNamesFile).toString().split('\n');
//const net = cv.readNetFromTensorflow(modelFile);
const net = cv.readNetFromTensorflow(modelFile);
const classifyImg = (img) => {
// inception model works with 224 x 224 images, so we resize
// our input images and pad the image with white pixels to
// make the images have the same width and height
const maxImgDim = 224;
const white = new cv.Vec(255, 255, 255);
const imgResized = img.resizeToMax(maxImgDim).padToSquare(white);
// network accepts blobs as input
const inputBlob = cv.blobFromImage(imgResized);
net.setInput(inputBlob);
// forward pass input through entire network, will return
// classification result as 1xN Mat with confidences of each class
const outputBlob = net.forward();
// find all labels with a minimum confidence
const minConfidence = 0.05;
const locations = outputBlob.threshold(minConfidence, 1, cv.THRESH_BINARY).convertTo(cv.CV_8U).findNonZero();
const result =
locations.map(pt => ({
confidence: parseInt(outputBlob.at(0, pt.x) * 100) / 100,
className: classNames[pt.x],
}))
// sort result by confidence
.sort((r0, r1) => r1.confidence - r0.confidence).map(res => {
return `标签:${res.className}、概率:${res.confidence}、百分比:${res.confidence * 100}%`;
});
return result;
};
const testData = [];
/**
* 文件遍历方法
* @param filePath 需要遍历的文件路径
*/
function fileDisplay(filePath) {
//根据文件路径读取文件,返回文件列表
const tempFileDir = fs.readdirSync(filePath);
tempFileDir.forEach(function (filename) {
//获取当前文件的绝对路径
const filedir = path.join(filePath, filename);
//根据文件路径获取文件信息,返回一个fs.Stats对象
let tempFile = fs.statSync(filedir);
if (tempFile.isFile()) {
let tempObj = {};
tempObj['image'] = filedir;
tempObj['label'] = filename;
testData.push(tempObj);
}
if (tempFile.isDirectory()) {
fileDisplay(filedir);//递归,如果是文件夹,就继续遍历该文件夹下面的文件
}
});
}
fileDisplay(path.resolve('./data'));
testData.forEach((data) => {
const img = cv.imread(data.image);
//console.log('%s,%s: ', data.image, data.label);
//console.log('%s: ', data.image);
const predictions = classifyImg(img);
let tempText = '';
predictions.forEach(p => {
//console.log(JSON.stringify(p));
tempText += p + '\n';
});
console.log(tempText);
imageMagick(data.image).gravity(DIRECTION['NorthWest']) //水印的位置
.geometry('+10+10') //距离右下角右边10px下边10px
//.fontSize(24)
.fill('red')
.pointSize(18)
//.font('/Library/Fonts/Songti.ttc')
.font('./font/msyh.ttf')//字体必须正确,否则乱码或者不显示中文
.stroke('red')//文字颜色
.drawText(15, 10, tempText) //15和10是位置信息 最后一个参数是文字信息
.write(data.image.replace('/data/', '/process/'), function (err) {
if (err) {
return console.error('err--------', err);
}
console.log('%s:', data.image, tempText, '打标处理完成!');
});
//cv.imshowWait('img', img);
console.log('---------finish---------');
});
8.4 Настройка моделей TensorFlow с обучением переносу
На основе модели Google Inception-V3 GTX1080 используется для параллельных вычислений и обучения на платформе Windows через TensorFlow, и получаются желаемые результаты модели.
скрипт обучения на питоне
python retrain.py --bottleneck_dir=C:\Users\***\PycharmProjects\flower_photos\bottlenecks --how_many_training_steps=500 --model_dir=C:\Users\***\PycharmProjects\flower_photos\inception --summaries_dir=C:\Users\***\PycharmProjects\flower_photos\training_summaries\basic --output_graph=C:\Users\***\PycharmProjects\flower_photos\retrained_graph.pb --output_labels=C:\Users\***\PycharmProjects\flower_photos\retrained_labels.txt --image_dir=C:\Users\***\PycharmProjects\flower_photos
Распознавание изображений с помощью обучающего скрипта
const Promise = require('bluebird');
const childProcess = require('child_process');
(async () => new Promise(((resolve, reject) => {
/**
* child.stdin 获取标准输入
* child.stdout 获取标准输出
* child.stderr 获取标准错误输出
*/
childProcess.exec('python3 /Users/***/Downloads/python/label_image.py --image /Users/***/Downloads/python/232831_44935.jpg --graph /Users/***/Downloads/python/retrained_graph.pb --labels /Users/***/Downloads/python/retrained_labels.txt', (error, stdout, stderr) => {
// console.log('error', JSON.stringify(error));
// console.log('stdout', stdout);
// console.log('stderr', JSON.stringify(stderr));
if (stdout.length > 0) {
console.log(stdout);
resolve(stdout);
}
if (error) {
console.info(stderr);
reject(error);
}
});
})))();
9. Щелчок, рекомендации по пространству, проверка и взлом идей
9.1 Порядок слов Нажмите
9.2 Проверка пространственного мышления
1. Используйте Puppetter для сканирования образцов данных с целевого веб-сайта, сканирования вопросов и ответов и создания библиотеки образцов для выбора порядка слов, выбора значков и пространственного мышления. На основе обучения изображений и глубокого обучения после завершения обучения модели библиотеки образцов получаются соответствующие данные модели для последующего взлома.
2. Puppetter посещает соответствующий веб-сайт, выходит из спящего режима, извлекает код подтверждения и получает изображение проблемы с помощью снимка экрана Puppetter. Выполните скрипт Python через службу Node, чтобы завершить функцию распознавания изображений и получить соответствующий ответ. На основе полученных ответов выполняется проверка через Puppetter, осуществляется проверка и взлом целевого веб-сайта.
Пока умный проверочный код вступил в эпоху противостояния ИИ.
10. Обновление противостояния
10.1 3D-проверочный код
Традиционная CAPTCHA в основном основана на двухбитном пространстве, и ответ находится прямо перед ним, что позволяет Puppetter относительно легко имитировать линейный путь. Начиная с трех аспектов новизны и интересной безопасности, мы изучили моделирование трехмерного пространства в двумерном пространстве, чтобы понять скрытый ответ и сложность решения пространства, что значительно повышает удовольствие и безопасность кода проверки. .
Особенности продукта для проверки 3D-вращения:
- Проблемная поверхность увеличена с 1 до 6
- Поддержка текста, изображений и других форм
- Поверхность ответов по умолчанию не видна текущему пользователю.
- Проверочный код по умолчанию имеет скорость вращения, что увеличивает сложность кодирования и перехвата роботом.
- Ответы случайным образом распределяются на лице
- Когда поверхность ответа поворачивается, можно пройти под любым углом, если ответ нормальный.
Основные технические моменты кода подтверждения 3D:
- Служба Java случайным образом передает кодировку лица и информацию о лице на веб-страницу.
- Веб-страница использует CSS 3D для рисования 3D-кубов, а 6 граней куба рисуются в сочетании с информацией о редактировании поверхности.
- Получите информацию об относительной точке пространства, чтобы проверить ответ пользователя, угол поворота лица пользователя не влияет на расчет ответа
10.2 Проверка пространственного мышления
Безопасность проверки пространственного мышления выше, чем у традиционных скользящих и символьных кодов проверки, чтобы обогатить линейку продуктов. Мы выполняем предварительную и внутреннюю проверку и распознавание на основе совместной работы ThreeJS и Java 3D.
Характеристики продукта для проверки пространственного мышления:
- Java 3D предоставляет модель данных для моделирования вопросов и ответов.
- Завершите генерацию вопросов и ответов на основе ThreeJS, и служба генерации примет автономную стратегию для обеспечения совместимости и скорости продукта.
- Код проверки клиента основан на изображении 3D-плоскости, а псевдо-3D реализовано на основе визуального параллакса.
- Некоторые языки описания, которые легко понять людям, но трудно понять машинам, используются в данных моделирования, что увеличивает сложность пространства решений.
- Все алгоритмы проверки находятся в бэкенде, а фронтенд отвечает только за самое основное представление, а безопасность гарантирована
Технические моменты проверки пространственного мышления:
- Java 3D отвечает за генерацию данных трехмерного моделирования ThreeJS, а данные вопросов и ответов кода проверки динамически генерируются внутренним алгоритмом.
- Выполните 3D-моделирование на основе ThreeJS и получите трехмерное отображение пространства за счет комбинации источников света, камер и сцен.
- На основе автономной генерации 3D-кода проверки, трехмерного пространственного изображения вопроса и изображения ответа изображение вопроса отображается на стороне клиента, а изображение ответа используется для проверки ответа на стороне сервера.
- Задача сочетает в себе порядок слов, семантику, пространственное мышление и физический баланс с многомерными алгоритмами.Сложность решения пространства значительно улучшена, а сложность взлома ИИ повышена.
С развитием интернет-технологий черно-серое производство постепенно сформировало группу и инструмент, и вред предприятиям становился все более и более серьезным. В противостоянии с черной индустрией служба по борьбе с мошенничеством Tongdun Technology, опираясь на технологию анализа больших данных, обеспечивает безопасность контента, безопасность бизнеса, облачную безопасность, проверку человека и компьютера, код проверки поведения, маркетинговую защиту от мошенничества, защиту регистрации, вход в систему. защита, изображение Huangjian, фильтрация текста, фильтрация чувствительных слов, разведка черного производства и другие продукты используются для противостояния черному производству, предоставляя решения безопасности для предприятий.
Интеллектуальный код проверки Tongdun превратился из одноточечной конфронтации в системную конфронтацию, многомерную смешанную конфронтацию и принимает новую форму проверки для улучшения взаимодействия с пользователем и повышения возможностей защиты безопасности. Безопасность - это жизнь интернет-компаний, проверочный код Tongdun поможет пользователям вместе построить этот забор безопасности.
использованная литература
Прошлая и настоящая жизнь проверочного кода (эта жизнь)
Говоря о проверочном коде веб-безопасности
Puppeteer — Введение в безголовые браузеры
код подтверждения идентификации узла
Предварительное исследование распознавания текста изображения с использованием Tesseract
Как tesseract ограничивает распознаваемый текст
[Интерпретация модели] Начальная структура, понимаете?