新无止竞

首页 » PHP » 化学式/历史上的今天验证码开源(内含维基百科历史上的今天数据)

化学式/历史上的今天验证码开源(内含维基百科历史上的今天数据)




在上次的化学式验证码启用后,有许多文科生掀桌,所以这次又写了一个针对文科生版的:





要是再答不上来可不能怪我→_→

验证码的数据爬取自维基百科,好在维基百科每个日期的词条格式都是规范式的,这也就方便了爬取。总共收集了三万多条数据,分为伟人出生,逝世,大事件三类。数据搞定了,随之而来的难题是用GD库写多行文本,本来以为肯定有相关函数,但后来发现GD库只能写单行文本,多行的话只能通过计算文字量,分开写入单行





维基百科三万历史上的今天数据

我已经打包成SQL格式了:https://file.aoaoao.me/f.php?k=57e6b

此数据为粗整理版,由于爬去的时候因为网络问题断了几次,所以有几天的数据是不全的。其中y字段为时间类型,0为大事件,1为人物出生,2为逝世。d为年份,i为日期,p为时间内容。

爬虫参考了GitHub上的开源项目,但原爬虫已失效,稍后我会在此更新代码:https://github.com/HFO4/TodayInHistory-Crawler

为树洞外链添加此验证码

要求:树洞外链版本2.4.X,material主题,PHP版本≥5.4,启用GD库扩展(低版本未测试)
1.安装Composer(已安装请略过)Linux下可执行以下命令安装


curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer 

2.用cd命令切换到树洞外链安装目录,执行下面命令安装gd-text
composer require zgldh/gd-text-for-chinese 

3.下载验证码补丁:https://file.aoaoao.me/f.php?k=a0472 并覆盖到树洞外链所在目录
4.将压缩包内的Cas.sql和Todayinhistory.sql导入至数据库
演示:https://file.aoaoao.me/views/login.php
默认情况下,化学式和历史上的今天会随机展示给用户,如果只想使用其中一种,可以修改content/themes/material/login.html底部的js代码。如果只使用化学式验证码,第一第二步可以略过。另外还要说明的是,化学式验证码图像会直接调用chemicalbook,不支持https,并且用户可以通过图像url获取到CAS编号从而查询到答案。你可以使用nginx或七牛融合cdn等工具将图像缓存下来,在此不再赘述。


为其他程序添加此验证码

原理类似,随机从数据库中取值,讲答案写入到session中,注意判断时忽略大小写,检查空值等。历史上的今天的文字格式转换、图像生成可参见includes/code2.php

文章如无特别注明均为原创! 作者: 独自狂战, 转载或复制请以 超链接形式 并注明出处 新无止竞博客 - 专注网络技术资源分享的IT博客
原文地址《 化学式/历史上的今天验证码开源(内含维基百科历史上的今天数据)》发布于2018-11-1

分享到:
打赏

评论

游客

切换注册

登录

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册