验证码

php绘制图片验证码

做~自己de王妃 提交于 2020-04-14 01:25:30
【今日推荐】:为什么一到面试就懵逼!>>> 验证码是一种安全保护机制,在注册时要求必须有人工操作进行验证,用于防止垃圾注册机大量注册用户账号占用服务器内存从而使服务器瘫痪。 图片验证码的实现十分简单。首先从指定字符集合中随机抽取固定数目的字符,以一种不规则的方法画在画布上,再适当添加一些干扰点和干扰元素,最后将图片输出,一张崭新的验证码就完成了。 前端代码如下: <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>This is a test!</title> <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"> </head> <body> <form name="form"> <input type="text" placeholder="账号"/><br/> <input type="password" placeholder="密码"/><br/> <input type="text" placeholder="验证码"/> <img id="verImg" src="libs/verification.php"/> <a href="#

eyou留言验证码失效

老子叫甜甜 提交于 2020-04-07 12:07:08
留言功能启用验证码可以避免一些垃圾信息,开启方法也很简单,下载验证码管理插件,或者更改配置文件。但是使用中发现留言后验证码失效,每次失效都要刷回页面,这样好不容易填写好的内容必须重新填写很是麻烦,总结了以下改进方法。 1.开启留言: 找到application/config.php 把 'guestbook'设置为1即为开启 2.使用验证码 在模版页面留言表单加入 {eq name="$field2.IsVertify" value="1"} <p class="contactform_code"> <input type="text" class="inputtxt" name="vertify" size="4" placeholder="验证码" autocomplete="off" style="width: 180px;"> <img {$field2.VertifyData} style="height: 60px;"> </p> {/eq} 3.优化验证码错误 原因是地址没加token,找到 core/library/think/template/taglib/eyou/TagGuestbookform.php 查询ey_fleshVerify方法,在地址var src =中&type=guestbook后面加&token= token {$token_id} 来源:

YinXiangMa_SDK_For_DotNet_V2.0接口开发者使用说明

∥☆過路亽.° 提交于 2020-03-26 09:28:21
3 月,跳不动了?>>> 一.概述 此文档旨在指导 .Net 网站主如何在自己的网站中植入印象码。 作为 .Net 网站的开发者,仅需要在网站后台进行简单的配置,就可以轻松地在您所搭建的网站上使用印象码,在使用安全、用户体验良好的验证码的同时,也为网站主带来可观的收入。 二.SDK植入流程 1. 获取网站 Key 1) 请访问 http://www.yinxiangma.com 注册网站主帐户并等待审核。 2) 登陆印象码广告平台,点击导航栏站点管理 -> 新建站点,然后,根据提示完成站点的创建,包含三部分:选择验证码类型、站点基本信息设置、验证码外观设置。 3) 创建站点后,点击站点 key 即可看到如下图所示的页面,并且看到自己站点的 key : 2. 显示验证码 在页面中需要放置验证码的位置添加如下代码: <input type='hidden' id='YXM_here' /> <script type='text/javascript' charset='gbk' id='YXM_script' async src='http://api.yinxiangma.com/api2/yzm.yinxiangma.php?pk= f619ca7d2ae0ff99e5727f697a6a2882 &v=YinXiangMaDotNetSDK_2.0'></script>

YinXiangMa_SDK_For_Java_V2.0接口开发者使用说明

江枫思渺然 提交于 2020-03-26 09:22:28
3 月,跳不动了?>>> 一.概述 此文档旨在指导 Java 网站主如何在自己的网站中植入印象码。 作为 Java 网站的开发者,仅需要在网站后台进行简单的配置,就可以轻松地在您所搭建的网站上使用印象码,在使用安全、用户体验良好的验证码的同时,也为网站主带来可观的收入。 二.SDK植入流程 1. 获取网站 Key 1) 请访问 http://www.yinxiangma.com 注册网站主帐户并等待审核。 2) 登陆印象码广告平台,点击导航栏站点管理 -> 新建站点,然后,根据提示完成站点的创建,包含三部分:选择验证码类型、站点基本信息设置、验证码外观设置。 3) 创建站点后,点击站点 key 即可看到如下图所示的页面,并且看到自己站点的 key : 2. 显示验证码 在页面中需要放置验证码的位置添加如下代码: <input type='hidden' id='YXM_here' /> <script type='text/javascript' charset='gbk' id='YXM_script' async src='http://api.yinxiangma.com/api2/yzm.yinxiangma.php?pk= f619ca7d2ae0ff99e5727f697a6a2882 &v=YinXiangMaJavaSDK_2.0'></script>

yii2增加验证码详细步骤

两盒软妹~` 提交于 2020-03-16 18:56:09
某厂面试归来,发现自己落伍了!>>> 作者:白狼 出处: http://www.manks.top/article/yii2_captcha 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 本来以为yii2框架验证码这块很全面,尝试百度google了一下,大多数教程写的零零散散不全面,想着自己写一份带有完整步骤的验证码教程。 我们假设site/login 表单登录需要增加验证码。 1、siteController控制器的actions方法增加captcha设置 public function actions() { return [ 'captcha' => [ 'class' => 'yii\captcha\CaptchaAction', 'maxLength' => 4, 'minLength' => 4 ], ]; } 上面我们简单设置了验证码的位数,有小伙伴好奇都有哪些配置项,这个你可以查看文件 vendor\yiisoft\yii2\captcha,包括验证码背景色,字体文件等设置都可以在这里找到。 2、siteController继续配置。 public function behaviors() { return [ 'access' => [ 'class' => AccessControl:

Java验证码程序

杀马特。学长 韩版系。学妹 提交于 2020-03-08 08:16:39
1、设计思想 利用random的随机生成数字,利用for循环控制随机数字的个数来控制验证码的输出。 利用JFrame实现布局的管理,对登录框内容的位置进行管理。 2、流程图 3、源代码 denglu类 import javax.swing.*; import java.awt.*; import javax.swing.JFrame; public class denglu extends JFrame{ JTextField jTextField; //定义文本框组件 JPasswordField jPasswordField; //定义密码框组件 JTextField jYanzhengField;//定义验证码框架组件 JLabel jl1,jl2,jl3; //用户名 密码 JButton jb1,jb2; //按钮 JPanel jp1,jp2,jp3,jp4,jp5; //边框 public denglu(){ // 创建组件 jTextField=new JTextField(10); jPasswordField=new JPasswordField(10); jYanzhengField=new JTextField(5); jb1=new JButton("登录"); jb2=new JButton("快速注册"); jl1=new JLabel("登录名");

如何给网站加入优雅的实时反爬虫策略

江枫思渺然 提交于 2020-02-28 17:25:58
你的网站内容很有价值,希望被google,百度等正规搜索引擎爬虫收录,却不想让那些无节操的山寨爬虫把你的数据扒走坐享其成。本文将探讨如何在网站中加入优雅的反爬虫策略。 【思路】 反爬虫策略要考虑以下几点: 能被google、百度等正规搜索引擎爬虫抓取,不限流量和并发数; 阻止山寨爬虫的抓取; 反爬虫策略应该是实时检测的,而不是通过一段时间后的访问统计分析得出; 误判后的人性化处理(优雅之所在); 大部分的爬虫不是以浏览器方式来访问页面的,爬虫只下载网页的html源代码,不加载包含在页面中的js/css/图片,这是区分爬虫与否的一个关键。一个请求被识别出来不是浏览器访问,一定是爬虫,为了满足上面所说的第1点和第2点,进一步对http头agent进行验证,是否标记为google、百度的spider,严格一点的话应该判别来源IP是否为google、baidu的爬虫IP,这些IP在网上都可以找到。校验出来IP不在白名单就可以阻止访问内容。 当然,有一部分爬虫是以浏览器载入的方式来抓取内容的,所以,即使被识别出来是浏览器访问的来源ip。还要检测这个个ip在一个时间片内的并发数,超过一定阀值,可以认为是爬虫,阻止访问内容。 由于我们的反爬虫策略是基于IP的,会出现误判,尤其是并发量限制的判别。我们需要一种友好的方式来阻止访问。直接返回50x/40x空白或者错误页面是很粗鲁的

验证码的编写

◇◆丶佛笑我妖孽 提交于 2020-02-20 11:34:31
1.js的编写 //更换图片 function changeImg(){ var imgSrc = $("#imgObj"); var src = imgSrc.attr("src"); imgSrc.attr("src",chgUrl(src)); } //时间戳 //为了使每次生成图片不一致,即不让浏览器读缓存,所以需要加上时间戳 function chgUrl(url){ var timestamp = (new Date()).valueOf(); if((url.indexOf("&")>=0)){ url = url + "×tamp=" + timestamp; }else{ url = url + "?timestamp=" + timestamp; } return url; } 2.生成验证码图片的代码 import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.imageio.ImageIO; import javax.servlet.ServletOutputStream; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet

Django之路 - 实现登录随机验证码

时间秒杀一切 提交于 2020-02-11 05:40:35
登录验证码是每个网站登录时的基本标配,网上也有很多相应的文章, 但是从生成验证码到 应用到自己的网站上的全步骤,并没有看到很多, 为了节约大家的时间,我把整体步骤写下来, 即拿即用哈 1. 生成随机验证码 1 #_*_coding:utf-8_*_ 2 3 from PIL import Image,ImageDraw,ImageFont,ImageFilter 4 5 import random 6 import math, string 7 8 9 #字体的位置,不同版本的系统会有不同 10 font_path = '/Library/Fonts/Arial.ttf' 11 #font_path = '/Library/Fonts/Hanzipen.ttc' 12 #生成几位数的验证码 13 number = 4 14 #生成验证码图片的高度和宽度 15 size = (100,30) 16 #背景颜色,默认为白色 17 bgcolor = (255,255,255) 18 #字体颜色,默认为蓝色 19 fontcolor = (0,0,255) 20 #干扰线颜色。默认为红色 21 linecolor = (255,0,0) 22 #是否要加入干扰线 23 draw_line = True 24 #加入干扰线条数的上下限 25 line_number = (1,5) 26

登录验证码

怎甘沉沦 提交于 2020-02-08 03:44:41
     //// <summary> /// 生成验证码 /// </summary> /// <param name="length">指定验证码的长度</param> /// <returns></returns> public static string CreateValidateCode(int length) { int[] randMembers = new int[length]; int[] validateNums = new int[length]; string validateNumberStr = ""; //生成起始序列值 int seekSeek = unchecked((int)DateTime.Now.Ticks); Random seekRand = new Random(seekSeek); int beginSeek = (int)seekRand.Next(0, Int32.MaxValue - length * 10000); int[] seeks = new int[length]; for (int i = 0; i < length; i++) { beginSeek += 10000; seeks[i] = beginSeek; } //生成随机数字 for (int i = 0; i < length; i++) {