Tiktok/抖音旋转验证码识别代码

news2024/10/6 8:22:28


一、引言

在数字世界的飞速发展中,安全防护成为了一个不容忽视的课题。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/1525185.html

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

相关文章

比TODESK好用的软件

比ToDesk更好用的软件:探索远程桌面的新选择 在远程桌面控制领域,ToDesk无疑是一款广受欢迎的软件。然而,随着技术的不断进步,市场上涌现出许多新的竞争者,它们在功能、性能和使用体验上都可能超越ToDesk。本文将介绍…

C语言向C++过渡的基础知识(三)

目录 auto类型变量(C11标准支持) auto关键字介绍 auto关键字的使用 auto关键字基本使用 auto关键字配合指针和引用 auto关键字不可以推导的场景 基于范围的for循环(C11标准支持) 基于范围的for循环基础使用 基于范围的fo…

语音识别:whisper部署服务器(远程访问,语音实时识别文字)

Whisper是OpenAI于2022年发布的一个开源深度学习模型,专门用于语音识别任务。它能够将音频转换成文字,支持多种语言的识别,包括但不限于英语、中文、西班牙语等。Whisper模型的特点是它在多种不同的音频条件下(如不同的背景噪声水…

【Linux杂货铺】进程的基本概念

目录 🌈前言🌈 📁进程的概念 📂描述进程-PCB 📂 查看进程 📂 查看正在运行的程序 📂杀死进程 📂通过系统调用获取进程标识符 📂通过系统调用创建进程 &#x1f…

HCIA——TCP协议详解

目录 1、TCP概念及协议头部格式 1.1TCP特点 1.2TCP协议协议头部格式 1.3字段进行介绍 1.3.1源端口和目的端口 1.3.2序号(seq) 1.3.3确认序号(ack) 1.3.4数据偏移 1.3.5标志位 1.3.6窗口 1.3.7校验和 1.3.8紧急指针 2、TCP的可靠性 2.1 TCP可靠性的保障 2.2排序机…

论文阅读_参数微调_P-tuning_v2

1 P-Tuning PLAINTEXT 1 2 3 4 5 6 7英文名称: GPT Understands, Too 中文名称: GPT也懂 链接: https://arxiv.org/abs/2103.10385 作者: Xiao Liu, Yanan Zheng, Zhengxiao Du, Ming Ding, Yujie Qian, Zhilin Yang, Jie Tang 机构: 清华大学, 麻省理工学院 日期: 2021-03-18…

unityprotobuf自动生成C#

Release Protocol Buffers v3.19.4 protocolbuffers/protobuf GitHub 导入Source code 里面的 csharp/src/Google.Protobuf 进入Unity 拷贝其他版本的 System.Runtime.CompilerServices.Unsafe进入工程 使用protoc-3.19.4-win32 里面的exe去编译proto文件为C# using Sys…

软件测试相关内容第四弹 -- 测试用例与测试分类

写在前:我们已经掌握了关于软件测试的相关内容,知道了基本的测试过程,在做了一段时间的基础测试,熟悉了相关的业务后,测试人员会进行测试用例的编写,在日常测试中,也需要补充测试用例到现有的案…

HCIP —— 交换 (VLAN)

VLAN --- 虚拟局域网 在 HCIA 中 ,已经学过交换机的一些基础配置,下面进行回顾一些简单的内容。 1.创建VLAN VLAN ID --- 区别和标识不同的VLAN 使用范围:0-4095 , 由12位二进制构成。 0 和 4095 作为 保留的VLAN。 …

静默安装OGG21.3微服务版本FOR ORACLE版本

静默安装OGG21.3微服务版本FOR ORACLE版本 silent install ogg21.3 for oracle 某度找来找去都没有找到一份可靠的静默安装OGG21.3微服务版本的案例,特别难受,为此将自己静默安装的步骤一步步贴出来分享给大家,请指点,谢谢。 至…

【生态适配】亚信安慧AntDB数据库与龙芯3C5000L完成兼容互认

日前,亚信安慧AntDB数据库系统V6.2在龙芯3C5000L平台上完成兼容性测试,功能与稳定性良好,被授予龙架构兼容互认证书。 图1:产品兼容性证明 随着“互联网”的纵深发展,数字技术创新成果与经济社会各领域深度融合&#…

电玩体验店怎么计时,佳易王ps5计时计费管理控制系统操作教程

电玩体验店怎么计时,佳易王ps5计时计费管理控制系统操作教程 一、前言 以下软件操作教程以 佳易王电玩计时计费管理系统软件V17.9为例说明 件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 1、电玩体验馆管理软件在计时的同时可以设置定时提醒&…

Java两周半速成之路(第十六天)

一、网络编程 1.概述: 就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换 2.网络模型 3.网络参考模型图 4.网络通信三要素 4.1IP地址 InetAddress类的使用: 注意:通过API查看,此类没有构造方法,如…

Spring Boot Starter: 快速简明地创建Spring应用

Spring Boot Starter是Spring Boot的核心功能之一,它帮助开发人员快速简明地创建、配置和运行Spring应用。在本文中,我们将详细介绍Spring Boot Starter以及如何使用它创建一个Spring Boot应用。 文章目录 什么是Spring Boot Starter?为何使用Spring B…

jetson nano——编译一些包的网址导航,pyside2,qt(持续更新)

目录 1.PySide2下载地址2.tesserocr下载地址3.Qt下载地址4.OpenSSL官网5.latex编译器下载地址5.1MikTex5.2TeX Live 1.PySide2下载地址 https://download.qt.io/official_releases/QtForPython/pyside2/ 如下图: 2.tesserocr下载地址 https://github.com/simonflue…

【送书福利第五期】:ARM汇编与逆向工程

文章目录 📑前言一、ARM汇编与逆向工程1.1 书封面1.2 内容概括1.3 目录 二、作者简介三、译者介绍🌤️、粉丝福利 📑前言 与传统的CISC(Complex Instruction Set Computer,复杂指令集计算机)架构相比&#…

进入docker容器中安装软件失败解,国外源慢,时间不同步,执行命令权限不够等问题解决办法

进入docker容器中安装软件失败解,时间不同步, 国外源慢,执行命令权限不够 等问题解决办法 首先我进入docker容器中,为了安装一个软件,引出了很多报错问题,报错如下: 1、无法用 ifconfig 或者 ip addr 的方…

Ansible自动化运维Inventory与Ad-Hoc

前言 自动化运维是指利用自动化工具和技术来简化、自动化和优化IT基础设施的管理和运维过程,从而提高效率、降低成本,并减少人为错误。在当今复杂的IT环境中,自动化运维已经成为许多组织和企业提高生产力和保证系统稳定性的重要手段。Ansibl…

Kubernetes operator系列:kubebuilder 实战演练 之 开发多版本CronJob

云原生学习路线导航页(持续更新中) 本文是 Kubernetes operator学习 系列文章,本节会在上一篇开发的Cronjob基础上,进行 多版本Operator 开发的实战 本文的所有代码,都存储于github代码库:https://github.c…

three.js 元素周期表,可鼠标控制

一些文章里的元素周期表,能显示,但控制器却无法使用,周期表没法旋转 后来发现是three.js版本问题, 旧版本在调试状态下是可以旋转的。新版本只要在正常页面打开状态下就能鼠标控制 <!DOCTYPE html> <html> <head> <meta charset="utf-8"&…