• 技术文章 >php框架 >ThinkPHP

    ThinkPHP6下简化think-captcha验证码,提高文字辨识度

    幸运切糕幸运切糕2020-05-02 10:09:49原创1512
    众所周知,验证码能防止恶意登录注册,它由服务端生成,发送给客户端,并最终以图像格式显示。复杂的验证码能提升网站的安全性,但过于复杂的验证码也会使得文字的肉眼识别变得异常困难,用户体验大大降低。

    本文以最新thinkphp6.0think-captcha扩展为修改对象,来详细讲解如何简化验证码的显示,提高文字辨识度,让老年人也能看得清!

    think-captcha验证码

    控制器测试代码:

    <?php
    namespace app\controller;
    
    use app\BaseController;
    use think\facade\View;
    
    class Index extends BaseController
    {
        public function index()
        {
            return View::fetch();
        }
    }

    视图测试代码:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <img src="{:captcha_src()}" alt="">
    </body>
    </html>

    默认情况下渲染的验证码如下:

    微信截图_20200501201048.png

    可能有的小伙伴觉得这很清晰呀,但是对于年龄较大的人来说还是比较困难,另外通过修改验证码文件,也可以提高自己的动手能力、增长知识。

    优化think-captcha验证码

    找到config\captcha.php配置文件,修改如下部分:

    //验证码位数
    'length'   => 4,                    //简洁的4字符验证码
    // 验证码字符集合
    'codeSet'  => '0123456789',        //这里我去掉英文了,只留下数字部分
    // 是否使用混淆曲线
    'useCurve' => false,
    //是否添加杂点
    'useNoise' => false,
    // 验证码字体 不设置则随机
    'fontttf'  => '4.ttf',            //经测试,该字体很顺眼

    修改后刷新看看,是不是更简洁了?

    微信截图_20200501202618.png

    这样其实已经比较可以了,正常情况下不建议再修改框架,但既以学习为目的,那我们就再深入优化下。

    打开vendor\topthink\think-captcha\src\Captcha.php

    修改第277行,去掉字体斜移度

    imagettftext($this->im, $this->fontSize, 0, $x, $y, $this->color, $fontttf, $char);

    最后看看效果,是不是已经很满意了

    4444.png

    本文通过简单的修改配置文件、去掉倾斜度的方式简化了验证码的显示,提高了文字辨识度,小伙伴儿们多多动手,印象才会更深刻哟!

    以上就是ThinkPHP6下简化think-captcha验证码,提高文字辨识度的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:ThinkPHP think-captcha
    上一篇:基于TP框架的fastadmin开发插件基本流程 下一篇:thinkphp无法识别数据表名大小写问题解决
    大前端线上培训班

    相关文章推荐

    • ThinkPHP实现点击图片刷新验证码• ASP.NET图形验证码生成实践• PHP生成图形验证码(加强干扰型)• ThinkPHP6新增‘’多应用‘’与ThinkPHP5有啥区别呢

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网