如何利用机器学习破解验证码的源代码教程

您所在的位置:网站首页 中国银联验证码是什么 如何利用机器学习破解验证码的源代码教程

如何利用机器学习破解验证码的源代码教程

2022-03-24 15:41| 来源: 网络整理| 查看: 265

验证码的设计是为了防止计算机自动填写表格,验证你是一个真实的“人”。但随着深度学习和计算机视觉的兴起,现在他们往往容易被击败。

我一直在读一本由AdrianRosebrock所写的书《Deep Learning for Computer Vision with Python》(Python计算机视觉深度学习)。在这本书中,Adrian回顾了如何通过机器学习破解e – zpass纽约网站上的验证码系统:

如何利用机器学习破解验证码的源代码教程

Adrian没有访问生成验证码图像的应用程序的源代码。为了破解这个系统,他不得不下载数百个示例图像,并手动解决它们以训练他的系统。

但是,如果我们想要破解一个开源的验证码系统,我们去哪里访问源代码呢?

我访问了WordPress.org插件登记网站,并搜索了“CAPTCHA”。上面的结果被称为“Really Simple CAPTCHA”,并且有超过100万的安装量:

WordPress.org插件登记地址:https://wordpress.org/plugins/

如何利用机器学习破解验证码的源代码教程

最棒的是,这里有它的源代码!因为有生成验证码的源代码,所以这应该很容易被破解。为了让事情变得更有挑战性,让我们给自己一个时间限制。我们能在15分钟内彻底破解这个验证码系统吗?让我们试一试!

重要提示:这绝不是批评“Really Simple CAPTCHA”插件或其作者。插件作者自己说它已经不安全了,建议你使用其他的东西。这只是一个有趣并且快速的技术挑战。但如果你是100万用户之一,或许你应该有所防备了:)

挑战

首先,让我们需要知道 Really Simple CAPTCHA生成什么样的图像。在演示网站上,我们看到:

Really Simple CAPTCHA地址:https://wordpress.org/plugins/really-simple-captcha/

如何利用机器学习破解验证码的源代码教程

演示验证码图片

验证码图像看起来是四个字母。让我们在PHP源代码中验证这一点:

public function __construct() { $this->chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789'; $this->char_length = 4;}

是的,它生成了4个字母的验证码,使用4种不同字体的随机组合。我们可以看到,在代码中它从不使用“O”或“I”,以此避免用户的混淆。这就给我们留下了32个可能的字母和数字。

到目前为止的时间:2分钟

我们的工具集

在我们进一步讨论之前,我们先来讨论一下解决这个问题需要的工具:

Python 3

Python是一种很有趣的编程语言,包含很好的机器学习和计算机视觉库。

OpenCV

OpenCV是一个流行的计算机视觉和图像处理框架。我们将使用OpenCV来处理验证码图像。它有一个Python API,因此我们可以直接在Python中使用。

Keras

Keras是用Python编写的深度学习框架。它使得定义、训练和使用具有最小编码的深度神经网络变得很容易。

TensorFlow

TensorFlow是谷歌的机器学习库。我们将在Keras中编码,但是Keras并没有真正实现神经网络逻辑本身。相反,它使用谷歌在幕后的TensorFlow库来完成繁重的任务。

好了,回到挑战。

创建数据集

训练任何机器学习系统,都需要训练数据。要破解验证码系统,我们需要这样的训练数据:

如何利用机器学习破解验证码的源代码教程

我们有了WordPress插件的源代码,就可以修改它来保存10000个验证码图像,以及每个图像的预期答案。

在对代码进行了几分钟的破解并添加了一个简单的for循环之后,我有了一个包含训练数据的文件夹—10,000个PNG文件,将正确的答案作为其文件名:

如何利用机器学习破解验证码的源代码教程

这是唯一的我不给你示例代码的部分。我们这样做是为了教学,我不希望你真的去垃圾邮件网站。但是我会给你我在最后生成的10000张照片,这样你就可以复制我的结果。

到目前为止的时间:5分钟

简化问题

现在我们有了训练数据,我们可以直接用它来训练神经网络:

如何利用机器学习破解验证码的源代码教程

如果有足够的训练数据,这种方法可能有效——但是我们可以使问题变得简单得多。问题越简单,训练数据越少,我们解决需要的计算力就越少。我们毕竟只有15分钟!

幸运的是,验证码图像通常只由四个字母组成。如果我们能把图像分割开来,这样每个字母都是一个单独的图像,那么我们只需训练神经网络识别单个字母:

如何利用机器学习破解验证码的源代码教程

我没有时间去浏览10000个训练图像,并且用Photoshop将它们手工分割成单独的图像。这需要几天的时间,但我只剩下10分钟了。我们不能将图像分割成4个等分大小的块,因为验证码随机将字母放置在不同的水平位置,如下图所示:

如何利用机器学习破解验证码的源代码教程

每个图像中的字母都是随机放置的,使图像分割变得更加困难。

幸运的是,我们仍然可以实现自动化。在图像处理中,我们经常需要检测具有相同颜色的像素的“blob”。这些连续像素点的边界称为轮廓。OpenCV有一个内置的findContours()函数,我们可以用它来检测这些连续区域。

我们将从一个原始的验证码图像开始:

如何利用机器学习破解验证码的源代码教程

然后我们将图像转换成纯黑白像素点(这称为色彩阈值法),这样就很容易找到连续区域的轮廓边界:

如何利用机器学习破解验证码的源代码教程

接下来,我们将使用OpenCV的findContours()函数来检测图像中包含相同颜色连续像素块的分离部分:

如何利用机器学习破解验证码的源代码教程

接着把每个区域作为一个单独的图像文件保存。因为我们知道每个图像应该包含从左到右的四个字母,所以我们可以用这些知识来标记我们保存的字母。我们按这个顺序把它们存起来,并用相应的字母名称来保存每一个图像字母。

但是等一下—我发现问题了!有时验证码有这样重叠的字母:

如何利用机器学习破解验证码的源代码教程

这意味着我们最终将提取将两个字母拼凑在一起的区域:

如何利用机器学习破解验证码的源代码教程

如果我们不处理这个问题,我们就会产生糟糕的训练数据。我们需要解决这个问题,这样我们就不会偶然地让机器将这两个squashed – together字母识别为一个字母。

有一个简单的窍门:如果一个区域的宽比它的高度大,那就意味着我们可能有两个字母挤压在一起了。在这种情况下,我们可以把这两个字母放在中间,把它分成两个独立的字母:

现在我们有了一种提取单个字母的方法,让我们在所有的验证码图像中运行它。目的是收集每个字母的不同变体。我们可以把每个字母都保存在自己的文件夹里。

这是我摘取所有字母后,“W”文件夹的图片:

如何利用机器学习破解验证码的源代码教程

到目前为止的时间:10分钟

构建并训练神经网络

因为我们只需要识别单个字母的图像,所以并需要一个非常复杂的神经网络结构。识别字母比识别像猫和狗这样的复杂图像要容易得多。

我们将使用一个简单的卷积神经网络架构,它有两个卷积层和两个完全连通的层:

如何利用机器学习破解验证码的源代码教程

定义这个神经网络架构只需要使用Keras的几行代码:

model = Sequential() model.add(Conv2D(20, (5, 5), padding="same", input_shape=(20, 20, 1), activation="relu")) model.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2))) model.add(Conv2D(50, (5, 5), padding="same", activation="relu")) model.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2))) model.add(Flatten()) model.add(Dense(500, activation="relu")) model.add(Dense(32, activation="softmax")) model.compile(loss="categorical_crossentropy", optimizer="adam", metrics=["accuracy"])

现在我们可以运行它了。

# Train the neural network model.fit(X_train, Y_train, validation_data=(X_test, Y_test), batch_size=32, epochs=10, verbose=1)

经过训练数据集10次之后,我们达到了接近100%的准确度。我们应该能够在任何我们需要的时候自动绕过这个验证码。

时间过了:15分钟

使用训练的模型来以解决验证码

现在我们有了一个经过训练的神经网络,用它来破解验证码是很简单的:

1. 从WordPress插件的网站上获取真正的验证码图像。

2. 用我们用来创建训练数据集的方法将验证码图像分割成四个不同的字母图像。

3. 让我们的神经网络对每个字母图像做一个单独的预测。

4. 用四个预测字母作为验证码的答案。

下面是我们的模型如何解码真实的验证码:

或从命令行:

如何利用机器学习破解验证码的源代码教程

原文标题:利用机器学习在15分钟内破解验证码

文章出处:【微信号:worldofai,微信公众号:人工智能】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

扫一扫,分享给好友

复制链接分享 评论

发布评论请先 登录

相关推荐

做时间序列预测是否有必要用深度学习 过去几年,时间序列领域的经典参数方法(自回归)已经在很大程度上被复杂的深度学习框架(如 DeepGI.... 的头像 智能感知与物联网技术研究所 发表于 03-24 13:59 • 43次 阅读 基于机器学习的效用和理论理解 机器学习领域近年的发展非常迅速,然而我们对机器学习理论的理解还很有限,有些模型的实验效果甚至超出了我.... 的头像 智能感知与物联网技术研究所 发表于 03-24 13:50 • 42次 阅读 GTC2022大会黄仁勋:Triton支持各类机器学习平台 GTC2022大会黄仁勋:Triton支持各类机器学习平台,可以在各个地方运行:云、本地、边缘或嵌入.... 的头像 lhl545545 发表于 03-23 16:30 • 157次 阅读 GTC2022大会黄仁勋:Triton支持各类机器学习平台 自动化如何支持工厂的信息控制 工厂的信息流和控制可以提高自动化水平,帮助制造商做出更好的决策 作者:伟创力智能制造工程团队副总裁M.... 的头像 话说科技 发表于 03-23 15:35 • 135次 阅读 NVIDIA AI 大力推进语音、推荐系统和超大规模推理领域的发展 NVIDIA AI 可供开发者免费使用,包括用于语音 AI 的 NVIDIA Riva 和用于智能推.... 发表于 03-23 14:27 • 290次 阅读 物联网创新应用展望:成熟的工业和商业市场推动物联网的增长 物联网将在2022年广泛应用在各个新行业。Silicon Labs副总裁兼工业及商业物联网产品部总经.... 发表于 03-23 11:11 • 396次 阅读 深度学习在工业自动化中的优势 作为人工智能(AI)的下一步,机器学习由系统定义,这些系统可以通过比标准计算机更少的人工交互来运行和.... 的头像 机器视觉 发表于 03-23 09:48 • 95次 阅读 java实时图像与处理库教程演示 项目介绍 项目名称:cv4j 所属系列:openharmony的第三方组件适配移植 功能:CV in.... 发表于 03-23 09:19 • 11次 阅读 施耐德电气再获“金钥匙·冠军奖” 甲骨文和红牛车队加强合作关系 LG化学近日宣布,其治疗2型糖尿病的新药候选物质“LC542019”的I期临床试验计划(IND)已获.... 的头像 lhl545545 发表于 03-22 11:26 • 800次 阅读 python网络爬虫概述 网络爬虫(Web Spider)又称网络蜘蛛、网络机器人,是一种按照一定的规则,自动地抓取万维网信息.... 的头像 python爬虫知识分享 发表于 03-21 16:50 • 138次 阅读 亮度可变人体感应和坐姿警告灯(含源代码和原理图及仿真) 亮度可变人体感应和坐姿警告灯,含源代码和原理图及仿真 发表于 03-18 11:27 • 32次 阅读 GNU C库的源代码 包含GNU C 库的源代码。请参阅文件“version.h”了解您拥有的发行版本。 GNU C库是所.... 发表于 03-18 10:26 • 10次 阅读 TDK推出新型超薄µPOL™直流-直流转换器 TDK株式会社宣布推出FS1412 microPOL(µPOL™)电源模块。FS1412的尺寸为5..... 发表于 03-18 09:31 • 739次 阅读 TDK推出新型超薄µPOL™直流-直流转换器 机器学习中的异常检测 在我们讨论什么是异常检测之前,我们必须首先定义一个异常。 一般来说,异常是一些偏离标准的东西:一个偏.... 的头像 Imagination Tech 发表于 03-17 13:57 • 269次 阅读 采用恩智浦应用软件包快速启动产品开发 恩智浦基于ML的系统状态监测应用软件包(App SW Pack)为快速开发此类复杂应用提供了量产源代.... 发表于 03-17 11:26 • 1387次 阅读 采用恩智浦应用软件包快速启动产品开发 一种快速评估混凝土缺陷的无损检测方法 混凝土材料中的缺陷检测,对于土木工程和结构应用至关重要。据麦姆斯咨询报道,日本芝浦工业大学(Shib.... 的头像 MEMS 发表于 03-17 09:38 • 144次 阅读 大联大21年全年营收创历史新高 曙光助力新材料计算软件创新 近日,依托东北大学建设、东软集团参与共建的计算机软件国家工程研究中心正式纳入新序列管理的国家工程研究.... 的头像 lhl545545 发表于 03-17 09:22 • 769次 阅读 RFE递归特征消除特征排序 本文主要从股市数据变量的特征分布及特征重要性两个角度对数据进行分析。 的头像 Linux爱好者 发表于 03-16 17:26 • 707次 阅读 STG宣布推出Trellix新业务 韩国KT选择是德科技5G设备测试解决方案 Symphony Technology Group (STG) 近日宣布推出Trellix,这是一项.... 发表于 03-16 14:45 • 836次 阅读 浅谈模拟在机器学习领域的重要性 电子设计行业正在发生相当大的变化,这主要是由于传感器的激增以及生成和收集更多信息的需求。这导致拥有更多传感器,并且这些传... 发表于 03-15 18:05 • 1829次 阅读 请问要如何运行Hi3516DV300开发板的测试套件呢   Openharmony: Hi3516DV300 怎么运行测试套件???   根据码云上的说明,运行不成功。有没有详细一点的说明???... 发表于 03-15 13:59 • 765次 阅读 如何解决工业缺陷检测小样本问题 早期的产品缺陷模式识别主要是通过机器学习方法进行的,如支持向量机、反向传播网络等。这些方法与用肉眼直.... 的头像 机器视觉智能检测 发表于 03-15 13:49 • 218次 阅读 AutoML:训练模型以识别凹坑 初始算法选择和超参数优化是我个人不喜欢做的活动。如果你像我一样,那么也许你会喜欢自动机器学习(Aut.... 的头像 机器视觉智能检测 发表于 03-15 11:11 • 138次 阅读 怎样去解决RTGUI中sscanf函数程序出现数据访问异常的问题呢 小弟最近正在学习RTGUI的源代码,从stm32_radio工程应用中拷贝了一个简单的实例来测试,不过我发现在程序运行到image_xpm.c... 发表于 03-15 09:50 • 818次 阅读 华域汽车携手ABB推进智能制造升级 ST升级机器学习开发工具 华域汽车系统股份有限公司(以下简称:华域汽车或公司)全资子公司华域汽车系统(上海)有限公司(以下简称.... 的头像 牵手一起梦 发表于 03-14 10:49 • 285次 阅读 25个Pandas实用技巧 假设你将一些数据储存在Excel或者Google Sheet中,你又想要尽快地将他们读取至DataF.... 的头像 数据分析与开发 发表于 03-14 10:33 • 165次 阅读 ST推出第三代MEMS传感器 全球首个集成ISP和Occula NPU的ASIC出世   服务多重电子应用领域、全球排名前列的半导体公司意法半导体(STMicroelectronics,.... 的头像 牵手一起梦 发表于 03-11 15:00 • 398次 阅读 FPGA, CPU, GPU, ASIC区别,为什么使用FPGA? PGA常年来被用作专用芯片(ASIC)的小批量替代品,然而近年来在微软、百度等公司的数据中心大规模部.... 的头像 FPGA设计论坛 发表于 03-11 10:49 • 268次 阅读 深兰科技智能大健康产品入驻山东 达闼打造融合智能机器学习平台 近日,行业唯一、山东省内首个综合性生命科技馆在山东滨州投入使用,深兰科技AI生理健康检测仪——扁鹊、.... 发表于 03-11 10:31 • 915次 阅读 基于.Net的公务员线上学习考试系统的源代码和开发文档 这是采用C#,基于.Net的公务员在线学习考试系统,可以在线学习,刷题,在线直播,在线模拟考试,功能.... 发表于 03-10 15:38 • 38次 阅读 深度学习在轨迹数据挖掘中的应用研究综述 深度学习在轨迹数据挖掘中的应用研究综述 来源:《 计算机科学与应用》 ,作者 李旭娟 等 摘要:  .... 发表于 03-08 17:24 • 61次 阅读 深度学习在轨迹数据挖掘中的应用研究综述 如何从源代码分析i2c驱动架构呢 如何从源代码分析i2c驱动架构呢? 如何向i2c总线添加一个适配器? ... 发表于 03-07 07:24 • 154次 阅读 意法半导体先进的MEMS传感器助您开启Onlife 时代 MEMS 技术实现是稳健可靠的芯片级运动和环境传感器的基础技术,今天的智能手机和可穿戴设备依靠MEM.... 发表于 03-04 13:57 • 1275次 阅读 意法半导体先进的MEMS传感器助您开启Onlife 时代 亚马逊云科技全栈机器学习力 什么是机器学习?其实机器学习在我们的现实生活中经常出现。尤其这几年,当我们在酒店入住和餐厅就餐时,已.... 的头像 华夏大视野 发表于 03-04 09:20 • 1127次 阅读 如何解决firefly rk3128 linux内核适配问题? 如何解决firefly rk3128 linux内核适配问题? 发表于 03-04 06:17 • 189次 阅读 某型无人机群的监视覆盖任务航路规划 某型无人机群的监视覆盖任务航路规划   来源:《 计算机科学与应用 》 ,作者冷雄晖等 关键词:  .... 发表于 03-03 16:01 • 19次 阅读 某型无人机群的监视覆盖任务航路规划 2022上海人工智能开发者大会Amazon DeepRacer自动驾驶赛车嘉年华 成功举办 由亚马逊云科技主办的WAIC 2022上海人工智能开发者大会 “Amazon DeepRacer嘉年.... 发表于 03-02 14:46 • 401次 阅读 2022上海人工智能开发者大会Amazon DeepRacer自动驾驶赛车嘉年华 成功举办 瑞萨电子与Fixstars建立汽车软件平台实验室,为用户提供深度学习开发软件和操作环境 瑞萨电子集团(TSE:6723)和多核CPU/GPU/FPGA加速技术的全球卓越供应商Fixstar.... 发表于 03-02 13:53 • 333次 阅读 瑞萨电子与Fixstars建立汽车软件平台实验室,为用户提供深度学习开发软件和操作环境 2022(第十一届)飞机航空电子国际论坛 2022年4月20日至21日 中国·上海 随着机器学习和人工智能成为航空航天行业未来的热门话题,我们如何进行自动化设计和测试?我们如何确定要测.... 发表于 03-01 16:05 • 415次 阅读 DAPLink源码Keil工程生成需要经过哪些步骤呢 在Github上下载好代码后,需要先生成KEIL工程才能进行边编译下载到板子里。第一步:下载代码安装git bash或者桌面版github,... 发表于 02-28 13:48 • 202次 阅读 怎样去解决工控系统及装备M9连接线加工工艺原因导致的问题呢 工控系统及装备M9连接线加工工艺原因导致的问题,4.3.1        拉丝或喷砂后再进行折弯,容易在... 发表于 02-28 13:03 • 139次 阅读 机器学习的基础内容汇总 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入... 发表于 02-28 06:12 • 134次 阅读 关于机器学习模型的六大可解释性技术 本文介绍目前常见的几种可以提高机器学习模型的可解释性的技术。 的头像 赛灵思 发表于 02-26 17:20 • 252次 阅读 关于机器学习模型的六大可解释性技术 恩智浦发布S32G汽车集成平台,加速软件定义汽车开发 GoldVIP为服务型网关、域控制器和车载计算机加快S32G芯片评估、软件开发和快速原型制作。 发表于 02-25 11:54 • 687次 阅读 恩智浦发布S32G汽车集成平台,加速软件定义汽车开发 Cortex-X1 Arm全新Cortex-X1高性能CPU Arm全新的Cortex-X1高性能CPU,它是 Arm Cortex-X Custom 项目(CX.... 的头像 物联网评论 发表于 02-25 09:18 • 1558次 阅读 Cortex-X1 Arm全新Cortex-X1高性能CPU 单片机C语言include、sfr和sbit有什么差别呢 这三个以后敲代码时一定会碰见,因此留个笔记方便以后忘了来查看。include#include 包含一个源代码文件的头文件#include //如果... 发表于 02-25 07:20 • 101次 阅读 让连接成为现实——罗德与施瓦茨携移动测试解决方案亮相MWC 2022 MWC 2022将于2022年2月28日至3月3日在巴塞罗那举行,届时将聚集移动行业重要企业。秉承“.... 发表于 02-24 14:08 • 735次 阅读 安晟培半导体与Rigetti Computing公司达成战略合作 安晟培半导体科技有限公司(Ampere Computing)日前宣布与 Rigetti Comput.... 的头像 安晟培半导体 发表于 02-24 13:44 • 1070次 阅读 怎样在数码管中实现显示一个数字呢 单片机零基础入门(8-2)实战:在数码管中实现显示一个数字--数码管知识的应用一、上节回顾:二、本节需求:三、需求分析:四、源... 发表于 02-24 07:33 • 92次 阅读 英特尔BigDL深挖大数据价值 助力分布式人工智能广泛落地 “没说就是零卡。”近日,网络健身博主@秃顶吴彦祖的金句意外走红,揭开了无数撸铁干饭王的最强自我欺骗套.... 的头像 话说科技 发表于 02-22 13:16 • 616次 阅读 英特尔BigDL深挖大数据价值 助力分布式人工智能广泛落地 面向关系数据库的智能索引调优方法 面向关系数据库的智能索引调优方法   来源:《软件学报》 ,作者邱 涛等   摘 要:数据库索引是关.... 的头像 li1234567890123 发表于 02-21 17:31 • 344次 阅读 面向关系数据库的智能索引调优方法 Ampere携手Rigetti开发混合量子经典计算机 该合作旨在为价值 160 亿美元的机器学习市场提供服务,赋能机器学习应用的发展 发表于 02-21 11:30 • 291次 阅读 Ampere携手Rigetti开发混合量子经典计算机 大数据建模、分析、挖掘技术应用研修班的通知 随着2015年9月国务院发布了《关于印发促进大数据发展行动纲要的通知》,各类型数据呈现出了指数级增长.... 的头像 li1234567890123 发表于 02-19 16:37 • 381次 阅读 基于并行附加特征提取网络的SSD地面小目标检测模型 基于并行附加特征提取网络的SSD地面小目标检测模型 来源:《电子学报》 ,作者李宝奇等 摘 要: 针.... 的头像 li1234567890123 发表于 02-17 16:41 • 254次 阅读 机器学习模型的可解释性算法详解 本文介绍目前常见的几种可以提高机器学习模型的可解释性的技术,包括它们的相对优点和缺点。 的头像 赛灵思 发表于 02-16 16:21 • 394次 阅读 机器学习模型的可解释性算法详解 基于三维激光点云的目标识别与跟踪研究 基于三维激光点云的目标识别与跟踪研究 来源:《汽车工程》 ,作者徐国艳等 [摘要] 针对无人车环境感.... 的头像 li1234567890123 发表于 02-15 13:36 • 399次 阅读 基于三维激光点云的目标识别与跟踪研究 关于TinyML概念的介绍 虽然许多机器学习应用需要强大的计算能力来处理复杂的科学或金融数据,但那些为物联网 (IoT) 和其他.... 发表于 02-15 11:23 • 509次 阅读 关于TinyML概念的介绍 Beyond Limits 宣布收购 Oak Consulting Beyond Limits 是一家服务于最严苛部门的工业和企业级 AI 软件公司,该公司今日宣布收购.... 发表于 02-11 10:54 • 275次 阅读 英飞凌携手SensiML为智能家居、健身和工业应用提供传感器数据并训练机器学习模型 英飞凌科技股份公司正与 SensiML 进行合作,共同为开发者提供 SensiML Analytic.... 发表于 02-11 10:44 • 879次 阅读 一种基于伪标签半监督学习的小样本调制识别算法 一种基于伪标签半监督学习的小样本调制识别算法 来源:《西北工业大学学报》,作者史蕴豪等 摘 要:针对.... 发表于 02-10 11:37 • 59次 阅读


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3