Tiktok/抖音旋转验证码识别方案

news2024/11/20 7:02:30

一、引言

在数字世界的飞速发展中,安全防护成为了一个不容忽视的课题。Tiktok/抖音,作为全球最大的短视频平台之一,每天都有数以亿计的用户活跃在其平台上。为了保护用户的账号安全,Tiktok/抖音引入了一种名为“旋转验证码”的安全验证方式。本文将深入解析Tiktok/抖音旋转验证码的原理、作用以及如何应对。

我通过不懈的努力,终于完成了抖音验证码的识别,我已经将模型封装供大家免费测试效果、学习适用。请点击查看:

二、旋转验证码的原理

旋转验证码,也称为“滑动验证码”,是一种用于验证用户是否为机器人的图形验证码。它的原理是通过要求用户按照一定的规则移动一个图像或对象来完成验证。在Tiktok/抖音的场景中,用户需要将一个不断旋转的图像拖动到正确的位置,以证明自己是一个真实的人而不是机器。

三、旋转验证码的作用

旋转验证码在Tiktok/抖音平台中起到了至关重要的作用:

1、防止机器人自动化操作:由于机器人无法准确识别和完成旋转验证码的任务,这种验证方式可以有效防止恶意机器人进行批量注册、自动点赞、评论等行为。

2、保护用户隐私:通过验证用户的操作能力,防止了恶意软件对用户隐私的窃取和滥用。

3、提高用户体验:相比于传统的文本验证码,旋转验证码更加直观、易用,大大降低了用户在进行验证时的困扰。

四、如何应对旋转验证码

虽然旋转验证码为Tiktok/抖音平台带来了诸多安全保障,但对于一些不法分子而言,他们仍然会想方设法地绕过这种验证方式。以下是一些常见的应对策略:

1、收集数据
首先需要下载大量的旋转验证码图片,这里需要使用爬虫技术,去批量下载图片,大概需要下载图片1万张。

2、机器学习
然后适用机器学习,去大量学习这下图片的特征,然后识别学习正确的角度。

3、识别角度计算滑动距离
通过学习的模型,然后输入全新的图片去测试一下识别的效果,大概正确率会在97%左右。我们可以通过角度,去计算滑块需要的滑动距离。

4、模拟验证
最后可以适用selenium去自动拖动滑块,然后验证码通过就可以了。当然也可以适用js逆向去进行验证,大家可以选择适合自己的方法去尝试。

五、验证码识别代码


import base64
import requests
import datetime
from io import BytesIO
from PIL import Image

t1 = datetime.datetime.now()

#PIL图片保存为base64编码
def PIL_base64(img, coding='utf-8'):
    img_format = img.format
    if img_format == None:
        img_format = 'JPEG'

    format_str = 'JPEG'
    if 'png' == img_format.lower():
        format_str = 'PNG'
    if 'gif' == img_format.lower():
        format_str = 'gif'

    if img.mode == "P":
        img = img.convert('RGB')
    if img.mode == "RGBA":
        format_str = 'PNG'
        img_format = 'PNG'

    output_buffer = BytesIO()
    # img.save(output_buffer, format=format_str)
    img.save(output_buffer, quality=100, format=format_str)
    byte_data = output_buffer.getvalue()
    base64_str = 'data:image/' + img_format.lower() + ';base64,' + base64.b64encode(byte_data).decode(coding)

    return base64_str

# 加载外圈大图
img1 = Image.open(r'E:\Python\lixin_project\OpenAPI接口测试\test_img\37号模型测试图片_1.jpg')
# 图片转base64
img1_base64 = PIL_base64(img1)
# 加载内圈小图
img2 = Image.open(r'E:\Python\lixin_project\OpenAPI接口测试\test_img\37号模型测试图片_2.jpg')
# 图片转base64
img2_base64 = PIL_base64(img2)

# 验证码识别接口
url = "http://www.detayun.cn/openapi/verify_code_identify/"
data = {
    # 用户的key
    "key":"Yrebvsf7hy73ZGales5D",
    # 验证码类型
    "verify_idf_id":"37",
    # 外圈大图
    "img1":img1_base64,
    # 内圈小图
    "img2":img2_base64,
}
header = {"Content-Type": "application/json"}

# 发送请求调用接口
response = requests.post(url=url, json=data, headers=header)

# 获取响应数据,识别结果
print(response.text)
print("耗时:", datetime.datetime.now() - t1)

六、总结

Tiktok/抖音的旋转验证码是一种非常有效的安全验证方式,它大大降低了机器人在平台上的活动,保护了用户的账号安全。虽然存在一些应对策略,但最关键的仍然是用户自身的防护意识和行为习惯。在享受数字世界带来的便利时,我们也要时刻警惕可能存在的安全风险。

如果想了解更多验证码识别请查看:得塔云

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1507353.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[数据结构]OJ用队列实现栈

225. 用队列实现栈 - 力扣(LeetCode) 官方题解:https://leetcode.cn/problems/implement-stack-using-queues/solutions/432204/yong-dui-lie-shi-xian-zhan-by-leetcode-solution/ 首先我们要知道 栈是一种后进先出的数据结构&#xff0c…

[Spring] IoC 控制反转和DI依赖注入和Spring中的实现以及常见面试题

目录 1. 什么是Spring 2.什么是IoC容器 3.通过实例来深入了解IoC容器的作用 3.1造一量可以定义车辆轮胎尺寸的车出现的问题 3.2解决方法 3.3IoC优势 4.DI介绍 5.Spring中的IoC和DI的实现 5.1.存对象 5.1.2 类注解 5.1.3 方法注解 5.2取对像 (依赖注入) 5.2.1.属性…

esp32 idf.py cmd powershell 环境

esp32 idf.py cmd powershell 命令行 环境 win10 推荐使用 Windows Terminal 替换自己路径 设置–>添加新配置文件–>选择cmd 或者 powershell -->保存–> 去修改命令行 启动目录,推荐使用父进程目录 powershell C:\WINDOWS/System32/WindowsPowe…

Docker 容器化技术:构建高效、可移植的开发环境和部署流程|Docker 概述

容器技术是云原生的核心技术之一,利用容器化技术,可以将微服务以及它所需要的配置、依赖关系、环境变了等都可以便捷地部署到新的服务器节点上,而不用再次重新配置,这就使得微服务具备了强大的可移植性。 一、Docker 概述 Docke…

【前端系列】CSS 常见的选择器

CSS 常见的选择器 CSS(层叠样式表)是一种用于描述网页样式的标记语言,它定义了网页中各个元素的外观和布局。在 CSS 中,选择器是一种用于选择要应用样式的 HTML 元素的模式。选择器允许开发人员根据元素的类型、属性、关系等来选…

Android平台实现无纸化同屏并推送RTMP或轻量级RTSP服务(毫秒级延迟)

技术背景 在写这篇文章之前,实际上几年之前,我们就有非常稳定的无纸化同屏的模块,本文借demo更新,算是做个新的总结,废话不多说,先看图,本文以Android平台屏幕实时采集推送,Windows…

javaEE6(网站第3章-jsp练习中三个例题动手做一遍;课后题2(1),(2))

两个数求和 用javascript实现。 输入、处理、输出用同一个页面(自己处理自己)。 输入1.jsp,处理和输出2.jsp。 (4)输入1.jsp,处理2.jsp,处理完转回1.jsp显示结果。 (5)输入1.jsp,处…

【Prometheus】k8s集群部署node-exporter

​ 目录 一、概述 1.1 prometheus简介 1.2 prometheus架构图 1.3 Exporter介绍 1.4 监控指标 1.5 参数定义 1.6 默认启用的参数 1.7 prometheus如何收集k8s/服务的–三种方式收集 二、安装node-exporter组件 【Prometheus】概念和工作原理介绍-CSDN博客 【云原生】ku…

堆宝塔(Python)

作者 陈越 单位 浙江大学 堆宝塔游戏是让小朋友根据抓到的彩虹圈的直径大小,按照从大到小的顺序堆起宝塔。但彩虹圈不一定是按照直径的大小顺序抓到的。聪明宝宝采取的策略如下: 首先准备两根柱子,一根 A 柱串宝塔,一根 B 柱用于…

计算表达式x*(2^i)的值math.ldexp(x, i)

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 计算表达式x*(2^i)的值 math.ldexp(x, i) [太阳]选择题 关于以下代码输出的结果说法正确的是? import math print("【执行】math.ldexp(3,2)") print(math.ldexp(3,2)) …

PromptBreeder---针对特定领域演化和发展提示词的方法

原文地址:promptbreeder-evolves-adapts-prompts-for-a-given-domain 论文地址:https://arxiv.org/pdf/2309.16797.pdf 2023 年 10 月 6 日 提示方法分为两大类 硬提示是由人工精心设计的文本提示,包含离散的输入令牌;其缺点…

报名开启丨掘金海外,探寻泛娱乐社交APP出海新风口

随着国内泛娱乐行业用户规模趋于见顶,泛娱乐社交APP转向出海是必然趋势。 根据行业数据显示,有超过35%的国内实时社交企业已启动或者正在规划出海,而其中出海商户的音视频流量增长均超过了100%。尤其是在东南亚、中东、拉美等新兴…

简介:CMMI软件能力成熟度集成模型

前言 CMMI是英文Capability Maturity Model Integration的缩写。 CMMI认证简称软件能力成熟度集成模型,是鉴定企业在开发流程化和质量管理上的国际通行标准,全球软件生产标准大都以此为基点,并都努力争取成为CMMI认证队伍中的一分子。 对一个…

Java算法之动态规划

Java算法之动态规划 前言 ​ 最近这一段时间一直在刷算法题,基本上一有时间就会做一两道,这两天做了几道动态规划的问题,动态规划之前一直是我比较头疼的一个问题,感觉好复杂,一遇到这样的问题就想跳过,昨…

科技引领品质:飞利浦智能锁“12年免费换新机”重塑行业新标杆

随着智能锁行业的竞争愈发火热,各大品牌在技术创新和服务升级方面不断推陈出新。售后服务的形态正发生深刻变化,从传统的保修维修到如今的技术支持、24小时在线客服等,各大品牌都在不断地提升售后服务水平,以创新的服务理念和先进…

【C++】十大排序算法之 桶排序 基数排序

本次介绍内容参考自:十大经典排序算法(C实现) - fengMisaka - 博客园 (cnblogs.com) 排序算法是《数据结构与算法》中最基本的算法之一。 十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序…

5G网络助力智慧文旅发展:实现旅游资源的优化配置与高效利用

目录 一、5G网络在智慧文旅中的关键作用 1、高速率传输提升数据处理能力 2、低时延助力实时决策与调度 3、大连接实现全面覆盖与精细化管理 二、5G网络助力实现旅游资源的优化配置 1、精准匹配游客需求与旅游资源 2、促进旅游资源的跨区域合作与共享 三、5G网络助力实现…

JavaSE-集合

● 在开发实践中,我们需要一些能够动态增长长度的容器来保存我们的数据,java中为了解决数据存储单一的情况,java中就提供了不同结构的集合类,可以让我们根据不同的场景进行数据存储的选择,如Java中提供了 数组实现的集…

【DimPlot】【FeaturePlot】使用小tips

目录 DimPlot函数参数解析 栅格化点图 放大 ggplot2 图例的点,修改图例的标题 FeaturePlot函数参数解析 调整FeaturePlot颜色 分组绘制featureplot 随手笔记,持续更新中。。。 Reference DimPlot函数参数解析 object: 一个Seurat对象,…

基于spring boot技术的签到管理系统的设计与实现

目 录 摘 要 I Abstract II 引 言 1 1 相关技术 3 1.1 SpringBoot框架 3 1.2 Vue框架 3 1.3 ECharts 3 1.4 JQuery技术 4 1.5 本章小结 4 2 系统分析 5 2.1 需求分析 5 2.2 非功能需求 8 2.3 本章小结 8 3 系统设计 9 3.1 系统总体设计 9 3.1.1 系统体系结构 9 3.1.2 系统目录…