一种较低成本较高复杂度的图形验证码

本文介绍了如何利用PHP的GD库,不依赖freetype,实现加粗、倾斜等效果,创建安全性高的图形验证码。验证码设计包含粘连、扭曲字符、串联线以及背景色变化等干扰元素,有效防止自动识别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



验证码(CAPTCHA)或者叫做全自动区分计算机和人类的图灵测试(Completely Automated Public Turing test to tell Computers and Humans Apart),主要用来在网络上将人和计算机(机器人)区分开来。reCAPTCHA(-R/32Sl)是Google的一个项目,除了能够将人和机器识别出来,还顺带地将一些传统印刷的书籍资料的扫描件印在上面,让网民帮助解读成数字化格式。

根据相关技术分析,图形验证码的识别技术主要过程包括去色、二值化等步骤,然后使用相应的字形模式进行匹配。

图形验证码的自动识别的难点,也是图形验证码防破解的优点,普遍认为是使用粘连、扭曲的字符串,或者再辅以连接线等。如:

常见的验证码-201402

 

常见的验证码-hotmail-201402

 

Hotmail登录

要实现验证字符的扭曲、粘连或者串联线等,并不太容易。

在PHP中,至少要加载额外的freetype字体文件才能实现加粗与斜体等效果,要扭曲等变化,则需要更大的开销。

经过一番探索,我们发现一种可以不使用freetype实现了加粗,并根据PHP的内置字体大小变化和绘制曲线等GD库工具,实现了下面的这些验证码,其安全性,基本实现了粘连、串联线和高低错落、大小各异,背景色变化等干扰。

常见的验证码-ufqi-201402

 

—- —- —-

新增-NatureDNS-自然域名:

-mysql   -onedrive   -linode   -hexun   -亿友阳光   -东方时尚驾校

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值