PHP汉字验证码

转自:http://www.blhere.com/1167.html


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44

<?php  
session_start();  
   
$width = 200;  
$length = 60;  
$image = imagecreatetruecolor($width, $length);  
$color = imagecolorallocate($image, 255, 255, 255);  
imagefill($image, 0, 0, $color);  
   
$fontface = ‘msyh.ttf‘;  
$str = "月日上午湖北荆州安良百货商场内一名岁的女子被搅入手扶电梯身亡据广西梧视台报道位多小朋友太阳从左到臂中段基本废掉甯全事关每个生命绝不允许万危险皺什么屡发吃故背后都有政府监管部门产者保养维护和所失职人祸原因民网亲带着孩溲卷碯躡目睹这幕如此悲情面估计无数潸然泪下终止竟孤偶让我?心于死来说羊补牢经而能褟庆幸自己没在那敲响实公共警钟底应该何做系乎寥成为话题密问其木起质疑鼚涌出赔偿缺却再也回才是最痛眰方运行既存就需要意识对拥否已尽了义务确正常转宣传尤进紧急制动样按钮播时候修些之众则件将会头尾答果任层现纰漏至重洞导致剧次以长鸣们注领域施与另外奏更毺郉平论家庭还学校给灌输各种救皋措办演练包含消防等容只够记像吝庥懂得示昌敪诌提前告知顾客通速及皌啬服推卸责兆历统谁望看蚄谓定忮改眺??轻描淡写追甚负躺顶格惩罚期操汻怂王两天国股暴跌步把市脆弱性熟造陷表淋漓投资贪婪览遗见缝插针机想他考虑社利益牛弹琴大势文章称组织稽查执法力量集抛售票线索核同声明队根退可户恶空分析指变化跑海或谋工具星疾呼过仅街老鼠喊打使证高调处金融交易仓限許卖单临规透赚钱减敢地惹火烧三未合约主结算即沪深持增加张但仍例近萎缩比少沒恐慌沽現象并它移括香港新坡华富貨当较初份达涉总值元宠模吗年热炒作显著升傍晚点美超亿由且开始聚早嗜血放屠刀立佛晃取衍润几用极灾难况招拆狠宝马奥拓展拳脚击败攻举解预决强获纷逃直崩盘清楚";  
   
$strdb = str_split($str,3);  
$captch_code = ‘‘;  
//产生随机数  
for($i=0; $i<4; $i++)  
{  
    $fontcolor = imagecolorallocate($image, rand(0,120), rand(0,120), rand(0,120));  
   
    $cn = $strdb[rand(0,count($strdb)-1)];  
    $captch_code .= $cn;  
   
    imagettftext($image, mt_rand(20,24), mt_rand(-60,60), (40*$i+20), mt_rand(30,35), $fontcolor, $fontface, $cn);  
   
}  
$_SESSION[‘authcode‘] = $captch_code;  
   
//干扰点  
for($i=0; $i<200; $i++)  
{  
    $pointcolor = imagecolorallocate($image, rand(50,200), rand(50,200), rand(50,200));  
    imagesetpixel($image, rand(1,$width-1), rand(1,$width-1), $pointcolor);  
}  
   
//干扰线  
for($i=0; $i<10; $i++)  
{  
    $linecolor = imagecolorallocate($image, rand(80,220), rand(80,220), rand(80,220));  
    imageline($image, rand(1,$width-1), rand(1,$width/3-1), rand(1,$width-1), rand(1,$width/3-1), $linecolor);  
}  
   
header("content-type: image/png");  
imagepng($image);  
imagedestroy($image);

客户端:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

<?php  
if(isset($_REQUEST[‘authcode‘])){  
    session_start();  
    if(($_REQUEST[‘authcode‘]) == $_SESSION[‘authcode‘]){  
        echo ‘<font color="#0000cc">输入正确</font>‘;  
    }else{  
        echo ‘<font color="#cc0000"><b>输入错误</b></font>‘;  
    }  
    exit();  
}  
   
?>  
   
<!DOCTYPE html>  
<html>  
<head>  
    <title></title>  
</head>  
<body>  
    <form method="post" action="./form.php">  
        <p>  
            验证码图片:<img id="captch_code" border="1" src="./captcha_cn.php?r=<?php echo rand();?>" witdh="100px" />  
            <a href="javascript:void(0)" onclick="document.getElementById(‘captch_code‘).src=‘./captcha_cn.php?r=‘+Math.random()">换一个</a>  
        </p>  
        <p>图片内容:<input type="text" name="authcode" value="" /> </p>  
        <p><input type="submit" value="提交" style="padding:6px 20px;"></p>  
    </form>  
</body>  
</html>
时间: 2024-08-01 06:33:19

PHP汉字验证码的相关文章

网页中文/汉字验证码

中文汉字验证码是模仿QQ注册验证码,使用此种验证码验证用户输入,相比以往传统的验证码输入,不但增加了机器识别的难度(需要找准对应文字的顺序及位置),而且使真正的用户操作起来更简单方便,只需在图上点击即可完成验证.此验证码不但在PC传统浏览器上能良好工作,也对当前的移动浏览器支持得非常好.项目内已集成了使用DEMO,开发时参照开发即可. 下载地址:http://www.51aspx.com/code/codename/55913

PHP算式验证码和汉字验证码的实现方法

在PHP网站开发中,验证码可以有效地保护我们的表单不被恶意提交,但是如果不使用算式验证码或者汉字验证码,仅仅使用简单的字母或者数字验证码,这样的验证码方案真的安全吗? 大家知道简单数字或者字母验证码很容易被破解,但是算式验证码或者中文汉字验证码不容易被破解,所以建议大家在使用验证码的时候,尽量用算式验证码或者中文汉字验证码. 下面是我写的两种验证码代码,有用到的朋友可以参考下: 1.算式验证码: <?php session_start(); header("Content-type: im

java验证码-汉字验证码

今天整理了一个java实现的汉字输入验证码 主要包含两个类,一个是生成验证码,一个是判断验证码输入是否正确 实现原理非常简单,将汉字和干扰线生成图片并将汉字保存到session,前台获取每次生成验证码图片并用文本框值和session值比较,功能就怎么简单. 生成汉字验证码源码展示 1 package xwcms.net.service; 2 import java.awt.Color; 3 import java.awt.Font; 4 import java.awt.Graphics; 5 i

java随机动态生成汉字验证码图片的实例代码分享

原创不易,转载请注明出处:java随机动态生成汉字验证码图片的实例代码分享 代码下载地址:http://www.zuidaima.com/share/1809721113234432.htm 汉字验证码实现原理 将汉字和干扰线生成图片并将汉字保存到session,前台获取每次生成验证码图片并用文本框值和session值比较,功能相对来说还是比较简单的. 效果图,如下: 验证成功后: java随机动态生成汉字验证码图片的实例代码分享

汉字验证码的生成与使用

首先新建一个生成随机汉字验证码的servet DrawImage.class package xwcms.net.service; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Ran

汉字验证码和算式验证码

大家知道简单数字或者字母验证码很容易被破解,但是算式验证码或者中文汉字验证码不容易被破解, 所以建议大家在使用验证码的时候,尽量用算式验证码或者中文汉字验证码. 下面是我写的两种验证码代码,有用到的朋友可以参考下: 原文转载自:http://www.phpskill.com/html/show-1-4410-1.html 1.算式验证码: <?php session_start(); header("Content-type: image/png"); $num1 = mt_ra

用C#生成随机中文汉字验证码的基本原理

前几天去申请免费QQ号码,突然发现申请表单中的验证码内容换成了中文,这叫真叫我大跌眼镜感到好笑,Moper上的猫儿们都大骂腾讯采用中文验证码.^_^  我不得不佩服腾讯为了防止目前网络上横行的QQ号码自动注册机而采取中文验证码的手段.仔细想了想感觉用程序生成随机的中文验证码并不是很难,下面就来介绍一下使用C#生成随机的中文汉字的原理. 1.汉字编码原理  到底怎么办到随机生成汉字的呢?汉字从哪里来的呢?是不是有个后台数据表,其中存放了所需要的所有汉字,使用程序随机取出几个汉字组合就行了呢?使用后

php 汉字验证码

代码: captcha.php <?php //实现简单的验证码 //session_start session_start(); //画布 $image = imagecreatetruecolor(200, 60); //设置填充颜色 $bgcolor = imagecolorallocate($image, 255, 255, 255); //填充 imagefill($image, 0, 0, $bgcolor); //随机数据 $str = '的一是在不了有和人这中大为上个国我以要他时

通过Servlet实现汉字验证码

package com; import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.IOException;import java.util.Random; import javax.imageio.ImageIO;import javax.servlet.Serv

(转)C#生成中文汉字验证码源码(webform)

using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.Ht