12306验证码的一些思考

article/2025/9/10 15:46:01

12306的验证码长这个样子:

让选择图片.看起来非常完美的图片验证码.比那些简单又没有实用的字母数字验证码组合强太多了.那些字母数字组合直接获取图片光学识别然后填进表单就可以攻破.

我也想实现这样的. 

怎么去实现呢?

设计一个简单点的吧.

1.我先收集图片.收集200张.分成20组.每组10张照片

分别是 苹果组,橘子组,美女组等等.

文件目录结构是:

2.后端设计.

  配置好 图片组所在的父级路径。配置图片验证码是8张图。

  初始化时,通过父级路径就可以使用File.listFiles()获得所有图片组。然后存入list集合里。

  每次请求验证码来时,来个随机数

int r = Random.nextInt(list.size());

File defaultFile = list.get(r);

这样就选中了默认的图片组。那么前段验证码的标题就是

 String title = "请选择所有的"+defaultFile.getName;//比如请选择所有的美女

然后进入默认图片组里随机抽取一张图片。给个普通标记。并把标记放入有效标记集合里。

接着还有7张图我们要拿到。

for(i = 0; i <7 ;i++){

       随机组,随机一张图片,给上普通标记。如果随机组 = 默认图片组,则把该组下抽取的图片的标记放到                                  有效标记集合里。

}

 

把有效标记集合存到session里。

然后把图片及普通标记打乱顺序传到前台。

每次校验验证码时,获得其传来的普通标记数组。看是否和session里的有效标记一致即可。

3.前台设计。

       展示图片隐藏标记。在校验验证码时只传输选中的图片的普通标记。

ok;

但是缺点很严重。

如果我图片被刷跑完了怎么办?

200张图片,不到1秒就被刷跑完。而且还被刷走了标题。

然后几乎不需要训练,直接对比图片就可以无视我的验证码了。

那如果我要是训练一个简笔画的智能程序,内存里自动生成一些简笔画呢?这样的话图片根本刷不完啊就安全了吧。

额,算了吧。还有图像识别哎!

简直了。论坛上有个人经常说:不要把有限的生命浪费到无限的加密解密循环中。

果然如是。

所谓的WEB安全未来将是一纸空谈吧

也许有两点非常稳定:1.使用第三方账号2.增加成本,比如上行发短信.

             

             

              

  

 

 

 


http://chatgpt.dhexx.cn/article/vmyQVyfI.shtml

相关文章

12306 验证码代码分析

验证码是一个很有趣的问题&#xff0c;其目的是谁是一个人或机器输入来区分&#xff0c;这个问题的实质是一个图灵测试&#xff08;推荐电影《模仿游戏》&#xff09;&#xff0c;验证码是一种简单而有效的验证方法&#xff0c;由CMU在教授2000在有关创建。后来这头牛谁又将收集…

Python——12306图片验证码

本次爬虫&#xff0c;我们来模拟一下12306的验证码验证 本次练习用到的模块&#xff1a; requestsrebase64urllib3 第一步&#xff0c;按F12查看验证码图片的信息&#xff1a; 提取URL&#xff1a;https://kyfw.12306.cn/passport/captcha/captch…

debian安装docker(通用方法)

本教程源于官网教程进行解释官网教程 docker容器是一个可以同时跑青龙&#xff08;用于挂机脚本&#xff09;与宝塔&#xff08;用于便携式部署网站&#xff09;之类的工具 我安装时在网络上搜索的教程来在部分电脑或者是主机上有时会出错尤其是32位系统的 于是我在疯狂百度总…

Debian安装mysql

Debian 10系统中默认使用了MariaDB&#xff0c;在APT的软件源中并没有mysql。所以&#xff0c;Debian 10 如果要安装mysql&#xff0c;需要下载安装Mysql APT Repository&#xff0c;更新APT Repository 后再使用 apt-get 安装。 设置软件源 点击mysql下载地址&#xff0c;下载…

linux Deploy 安装debian

一 准备工作 1、一台root的魅蓝note6手机&#xff0c;手机root教程需要自己根据机型搜索 2、去 https://github.com/meefik/linuxdeploy/releases下载linux deploy 3、去https://github.com/meefik/busybox/releases 下载BusyBox (安卓平台虚拟机&#xff08;chroot运行linux的…

Debian10安装

Debian 10.7(buster) 使用bt文件下载 下载链接&#xff1a;https://cdimage.debian.org/debian-cd/current/amd64/bt-dvd/ 这次是在VMware Workstation上安装的&#xff0c;如果是想在实体机上安装的话&#xff0c;需要做个启动盘&#xff0c;就是把ISO文件刻录到USB或DVD上。…

debian安装和基本使用

debian安装和基本使用 由于centos停止更新&#xff0c;改用debian debian下载&#xff0c;官网去下载DVD版本&#xff0c;4g多的体量&#xff0c;包含的软件比较全。 虚拟机安装&#xff0c;如果进入安装界面直接黑屏卡死&#xff0c;要注意是否镜像ISO文件未加挂。手动在虚拟…

Debian10: 系统安装

若非虚拟机安装&#xff0c;需要制作启动U盘&#xff0c;备份好U盘的数据后&#xff0c;使用UltraISO工具或Rufus(http://rufus.ie/)将 debian-10.6.0-amd64-DVD-1.iso文件写入U盘&#xff0c;将此U盘插入服务器&#xff0c;设置服务器从U盘启动即可。 第一步&#xff1a;选择…

安装debian11系统

镜像下载地址&#xff1a;https://gemmei.ftp.acc.umu.se/debian-cd/current/amd64/iso-cd/debian-11.6.0-amd64-netinst.iso 一、选择图形化安装&#xff08;这里说一下&#xff0c;这里的图形化安装是安装过程是图形化的&#xff0c;并非是选择系统带图形化界面&#xff0c;…

Debian 系统安装,小白教程

大家好&#xff0c;我是橘子。在工作过程中呢遇到了很多问题&#xff0c;踩了很多坑。网上很多都有教程但总是缺胳膊少腿&#xff0c;说了大概但坑似乎依旧存在。从今天开始&#xff0c;我会将自己碰到的一些坑和如何解决的分享给大家。如果你是个大佬&#xff0c;那我的内容对…

最新发布 Debian 系统的详细安装过程

前言 Debian 究竟是什么&#xff1f;有官方详细介绍说明&#xff0c;在此就不过多介绍说明了&#xff0c;只告知官网&#xff0c;可点击查看官网介绍。 管网连接 &#xff1a;Debian -- About Debian https://www.debian.org/intro/about 平台准备 使用 VMware 平台搭建&…

Debian 11 安装,超详细!

安装装备 华为源中下载镜像 https://repo.huaweicloud.com/debian-cd/11.0.0/amd64/iso-cd/ 3A服务器的虚拟机 开始安装 配置虚拟机 直接回车即可&#xff0c;第一次安装的小伙伴可以选择中文版安装&#xff0c;这样方便易懂&#xff0c; 一路继续&#xff0c;配置网络&a…

如何轻松安装 Debian Linux 系统

安装 Debian 的轻松程度依赖于选择什么镜像。 如果你使用 Debain 官网的默认 ISO 镜像&#xff0c;安装 Debian 就比较费劲。你会卡在这种界面&#xff0c;让你从外部可移动介质上安装网络驱动。 对于新用户来说&#xff0c;从默认的 ISO 中安装 Debian 是有问题的 当然你可以…

IOC 是什么

Ioc—Inversion of Control&#xff0c;即“控制反转”&#xff0c;不是什么技术&#xff0c;而是一种设计思想。在Java开发中&#xff0c;Ioc意味着将你设计好的对象交给容器控制&#xff0c;而不是传统的在你的对象内部直接控制。如何理解好Ioc呢&#xff1f;理解好Ioc的关键…

什么是 IoC 容器?

什么是 IoC 容器&#xff1f; 这个问题我觉得可以拆分为 3 小问&#xff1a; IoC 是什么意思&#xff1f;容器 指什么&#xff1f;IoC 容器是什么&#xff1f; 首先对于 IoC Inversion Of Control 翻译过来即 控制反转。理解 ”控制反转“ &#xff0c;我觉得首先是要明白&a…

Spring中的IOC是什么意思,为什么要用IOC而不是New来创建实例?

这里是修真院后端小课堂&#xff0c;每篇分享文从 【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】 八个方面深度解析后端知识/技能&#xff0c;本篇分享的是&#xff1a; 【 Spring中的IOC是什么意思&#xff0c;为什么…

什么是IOC容器

1.IOC不是一种技术&#xff0c;只是一种思想&#xff0c;一个重要的面向对象编程的法则&#xff0c;它能指导我们如何设计出松耦合&#xff0c;更优良的程序。传统应用程序都是由我们在类内部主动创建依赖对象&#xff0c;从而导致类与类之间高耦合&#xff0c;难于测试&#x…

java ioc是什么意思_Java技术面试题解析:举例说明什么是IoC

原标题&#xff1a;Java技术面试题解析&#xff1a;举例说明什么是IoC IoC是什么呢&#xff1f;有些人可能会有疑问&#xff1f; IoC便是Inversion of Control&#xff0c;操控回转。在Java开发中&#xff0c;IoC意味着将你规划好的类交给系统去操控&#xff0c;而不是在你的类…

JAVA的是什么ioc_spring中ioc是什么

IoC——Inversion of Control&#xff0c;控制反转 在Java开发中&#xff0c;IoC意味着将你设计好的类交给系统去控制&#xff0c;而不是在你的类内部控制。IoC是一种让服务消费者不直接依赖于服务提供者的组件设计方式&#xff0c;是一种减少类与类之间依赖的设计原则。 DI——…

java中ioc作用_java中的ioc是什么

java中的ioc是什么 发布时间:2020-06-03 20:01:10 来源:亿速云 阅读:174 作者:Leah java中的ioc是什么相信大部分人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,话不多说,一起往下看吧。 什么是ioc ioc全称是【Inversion of Control】控制反转,按照字面意…