« 在Linux下尝试Raw Socket TCP/IP编程之后的收获Z-BLOG可用的新版ASP的GIF验证码[V70404] »

刚写的PHP中文汉字验证码






hb.ttf换成随便你自己下载的ttf

<?php
Header("Content-type: image/PNG"); 
$str="的一是在了不和有大这主中人上为们地个用工时要动国产以我到他会作来分生对于学下级就年阶义发成部民可出能方进同行面说种过命度革而多子后自社加小机也经力线本电高量长党得实家定深法表着水理化争现所二起政三好十战无农使性前等反体合斗路图把结第里正新开论之物从当两些还天资事队批如应形想制心样干都向变关点育重其思与间内去因件日利相由压员气业代全组数果期导平各基或月毛然问比展那它最及外没看治提五解系林者米群头意只明四道马认次文通但条较克又公孔领军流入接席位情运器并飞原油放立题质指建区验活众很教决特此常石强极土少已根共直团统式转别造切九你取西持总料连任志观调七么山程百报更见必真保热委手改管处己将修支识病象几先老光专什六型具示复安带每东增则完风回南广劳轮科北打积车计给节做务被整联步类集号列温装即毫知轴研单色坚据速防史拉世设达尔场织历花受求传口断况采精金界品判参层止边清至万确究书术状厂须离再目海交权且儿青才证低越际八试规斯近注办布门铁需走议县兵固除般引齿千胜细影济白格效置推空配刀叶率述今选养德话查差半敌始片施响收华觉备名红续均药标记难存测士身紧液派准斤角降维板许破述技消底床田势端感往神便贺村构照容非搞亚磨族火段算适讲按值美态黄易彪服早班麦削信排台声该击素张密害侯草何树肥继右属市严径螺检左页抗苏显苦英快称坏移约巴材省黑武培著河帝仅针怎植京助升王眼她抓含苗副杂普谈围食射源例致酸旧却充足短划剂宣环落首尺波承粉践府鱼随考刻靠够满夫失包住促枝局菌杆周护岩师举曲春元超负砂封换太模贫减阳扬江析亩木言球朝医校古呢稻宋听唯输滑站另卫字鼓刚写刘微略范供阿块某功套友限项余倒卷创律雨让骨远帮初皮播优占死毒圈伟季训控激找叫云互跟裂粮粒母练塞钢顶策双留误础吸阻故寸盾晚丝女散焊功株亲院冷彻弹错散商视艺灭版烈零室轻血倍缺厘泵察绝富城冲喷壤简否柱李望盘磁雄似困巩益洲脱投送奴侧润盖挥距触星松送获兴独官混纪依未突架宽冬章湿偏纹吃执阀矿寨责熟稳夺硬价努翻奇甲预职评读背协损棉侵灰虽矛厚罗泥辟告卵箱掌氧恩爱停曾溶营终纲孟钱待尽俄缩沙退陈讨奋械载胞幼哪剥迫旋征槽倒握担仍呀鲜吧卡粗介钻逐弱脚怕盐末阴丰编印蜂急拿扩伤飞露核缘游振操央伍域甚迅辉异序免纸夜乡久隶缸夹念兰映沟乙吗儒杀汽磷艰晶插埃燃欢铁补咱芽永瓦倾阵碳演威附牙芽永瓦斜灌欧献顺猪洋腐请透司危括脉宜笑若尾束壮暴企菜穗楚汉愈绿拖牛份染既秋遍锻玉夏疗尖殖井费州访吹荣铜沿替滚客召旱悟刺脑措贯藏敢令隙炉壳硫煤迎铸粘探临薄旬善福纵择礼愿伏残雷延烟句纯渐耕跑泽慢栽鲁赤繁境潮横掉锥希池败船假亮谓托伙哲怀割摆贡呈劲财仪沉炼麻罪祖息车穿货销齐鼠抽画饲龙库守筑房歌寒喜哥洗蚀废纳腹乎录镜妇恶脂庄擦险赞钟摇典柄辩竹谷卖乱虚桥奥伯赶垂途额壁网截野遗静谋弄挂课镇妄盛耐援扎虑键归符庆聚绕摩忙舞遇索顾胶羊湖钉仁音迹碎伸灯避泛亡答勇频皇柳哈揭甘诺概宪浓岛袭谁洪谢炮浇斑讯懂灵蛋闭孩释乳巨徒私银伊景坦累匀霉杜乐勒隔弯绩招绍胡呼痛峰零柴簧午跳居尚丁秦稍追梁折耗碱殊岗挖氏刃剧堆赫荷胸衡勤膜篇登驻案刊秧缓凸役剪川雪链渔啦脸户洛孢勃盟买杨宗焦赛旗滤硅炭股坐蒸凝竟陷枪黎救冒暗洞犯筒您宋弧爆谬涂味津臂障褐陆啊健尊豆拔莫抵桑坡缝警挑污冰柬嘴啥饭塑寄赵喊垫康遵牧遭幅园腔订香肉弟屋敏恢忘衣孙龄岭骗休借丹渡耳刨虎笔稀昆浪萨茶滴浅拥穴覆伦娘吨浸袖珠雌妈紫戏塔锤震岁貌洁剖牢锋疑霸闪埔猛诉刷狠忽灾闹乔唐漏闻沈熔氯荒茎男凡抢像浆旁玻亦忠唱蒙予纷捕锁尤乘乌智淡允叛畜俘摸锈扫毕璃宝芯爷鉴秘净蒋钙肩腾枯抛轨堂拌爸循诱祝励肯酒绳穷塘燥泡袋朗喂铝软渠颗惯贸粪综墙趋彼届墨碍启逆卸航雾冠丙街莱贝辐肠付吉渗瑞惊顿挤秒悬姆烂森糖圣凹陶词迟蚕亿矩";
$image_x=110;
$image_y=110;
$im = imagecreate($image_x,$image_y); 
$bkg = ImageColorAllocate($im,255,255,255); 
$fnt = "hb.ttf"; //显示的字体样式
$white=imagecolorallocate($im,234,185,95);
imagearc($im, 150, 8, 20, 20, 75, 170, $white);
imagearc($im, 180, 7,50, 30, 75, 175, $white);
imageline($im,20,20,180,30,$white);
imageline($im,20,18,170,50,$white);
imageline($im,25,50,80,50,$white);
$noise_num=3000;
$line_num=80;
imagecolorallocate($im,0xff,0xff,0xff);
$rectangle_color=imagecolorallocate($im,0xAA,0xAA,0xAA);
$noise_color=imagecolorallocate($im,0x00,0x00,0x00);
$font_color=imagecolorallocate($im,0x00,0x00,0x00);
$line_color=imagecolorallocate($im,0x00,0x00,0x00);
for($i=0;$i<$noise_num;$i++)
imagesetpixel($im,mt_rand(0,$image_x),mt_rand(0,$image_y),$noise_color);
for($i=0;$i<$line_num;$i++)
imageline($im,mt_rand(0,$image_x),mt_rand(0,$image_y),mt_rand(0,$image_x),mt_rand(0,$image_y),$line_color);
$randnum=rand(0,strlen($str)-4);
if ($randnum%2)$randnum+=1;
$str1=substr($str,$randnum,4);
$str2 = iconv("GB2312","UTF-8",$str1);//验证汉字在$str1里面
//www.dc9.cn//sipo 2007-4-3制作
ImageTTFText($im, rand(28,32), rand(0,70), rand(25,27), rand(70,100), $font_color, $fnt, $str2);
ImagePNG($im); 
ImageDestroy($im);
?> 

  • 相关文章:
  • quote 1.Ken
  • 没有考虑用户,如果是我,我不会用,讨厌打字,何况不是连贯的词
  • 2007-4-3 8:23:04 回复该留言
  • quote 2.internet
  • 英文验证码为了考虑用户可用性都是不区分大小写,没想到居然有人白痴到要用中文做验证码,这种人不是没脑子,就是和用户有深仇大恨,最终的结果就是被用户淘汰,技术是拿来用的,不是拿来炫耀的
  • 2007-4-3 9:08:20 回复该留言
  • quote 3.sipo
  • 呵呵,真正做过点东西的人都知道中文验的重要啊
  • 2007-4-3 9:19:54 回复该留言
  • quote 4.internet
  • 什么人是“真正做过点东西的人”?
    “都知道”这个结论是怎么得出来的?有人对“真正做过点东西的人”做过调查统计吗?
    说话要有根据,不要信口开河
  • 2007-4-3 9:54:48 回复该留言
  • quote 5.路人甲
  • 它妈的,人家这是写在blog上交流的,是技术探讨,日,有些人不喜欢就别看,人家就用中文怎么了,你他妈个逼的管得着?白痴,大家都用英文,你跟着大家就是牛B了,SB,老子就是看不惯有些人的态度,别人和你不一样怎么了?那是他的权力,你可以不同意别人的观点,但要誓死捍卫别人观点与你不同的权力
  • 2007-4-3 10:10:46 回复该留言
  • quote 6.internet
  • “技术探讨”难道不允许有反对意见?
    日,有些人不喜欢反对意见就别看
    我就不喜欢用中文怎么了,“你他妈个逼的管得着?”
    白痴,大家都用英文,你跟着大家就是牛B了,SB,老子就是看不惯有些人的态度,别人和你不一样怎么了?
    在这里留言是我的权力,你可以不同意我的观点,但要誓死捍卫我的观点与你不同的权力
  • 2007-4-3 10:19:16 回复该留言
  • quote 8.sipo
  • 汗...中文是输入麻烦。所以不可能用在blog验证上面。
    但在有些商业领域还是很有用的哦。
  • 2007-4-3 10:45:11 回复该留言
  • quote 11.decade
  • 整个一白痴..那失去了验证码的作用,中文是为了更好的防范验证码的被破解...

    你他妈的不喜欢中文,还在这用中文?用你的"猪文"算了...别人的BOLG尽被你这垃圾糟蹋了!“技术探讨”允许有反对意见,但你看看你他妈的是反对的什么?人身攻击?


    某SB:"英文验证码为了考虑用户可用性都是不区分大小写,没想到居然有人白痴到要用中文做验证码,这种人不是没脑子,就是和用户有深仇大恨,最终的结果就是被用户淘汰,技术是拿来用的,不是拿来炫耀的"

  • 2007-4-3 13:01:38 回复该留言
  • quote 12.internet
  • 12楼整个一白痴...

    你他妈的怎么知道我不喜欢中文,别人的BOLG尽被你这垃圾糟蹋了!你他妈的是反对的又是什么?人身攻击?

    12楼某SB:"..."

    BOLG是什么??
  • 2007-4-3 14:05:15 回复该留言
  • quote 13.internet
  • 骂人谁不会啊,再说别人人身攻击之前先想想自己是不是已经在人身攻击了,当然,如果你还有脑子的话
  • 2007-4-3 14:09:40 回复该留言
  • quote 14.internet
  • 还有6楼那位,在说“你可以不同意别人的观点,但要誓死捍卫别人观点与你不同的权力”之前先想想自己是不是在“誓死捍卫我的观点与你不同的权力”,当然,如果你还有脑子的话
  • 2007-4-3 14:11:29 回复该留言
  • quote 18.Shadowsong
  • 中文被破解的可能性更小吧
    与其做复杂的英文验证码还不如中文这个简单呢

    不过 不够国际化 英文网站就不能用了
  • 2007-4-3 19:58:20 回复该留言
  • quote 19.Chap
  • 技术需要讨论,但不是攻击啊。。。
    各位冷静!

    中文验证是有很大的优势,但是要避免像QQ申请那样的没有规律的复杂验证,每个字之间都没有关系,对于中文输入不是太利索的人,等输完验证码,验证时效也差不多过期了。-_-!
  • 2007-4-4 10:43:23 回复该留言
  • quote 20.haphic
  • http://haphic.com/
  • 晕, 怎么骂成这样了... 技术要考虑用户是真的, 但也不是非要被用户牵着鼻子走, 觉得烦那就少留几次言.
    提个小建议, 用双字词接龙的形式创建字库. 这样可以在不考虑断词的情况下实现最大可能的方便. (验证码是四个字吗? 没细看.)

    PS: 此路人甲是Webwizcn的路人甲吗? 无论如何, 不该措词那么激烈吧...
    汗~
    haphic 于 2007-4-4 19:52:25 回复
    我指的是每次读取两个连续的字. 用四个字做验证码, 这样用户打着方便多了. 词尽量选最常用的.(输入法中排在前列的)...
  • 2007-4-4 19:52:25 回复该留言
  • quote 22.SULei
  • 究竟是"降低已经很低的被破解的可能性"重要,
    还是"提升本来就不咋地的用户体验"更重要?
  • 2007-4-5 13:07:12 回复该留言
  • quote 23.SULei
  • 要是老外不懂中文呢?
    要是繁体地区的用户呢?
    要是没法输入中文呢?
  • 2007-4-5 13:09:40 回复该留言
  • quote 24.Allen
  • 用这种验证码技术的产品肯定成不了大气,如果你们公司有交互设计师的话,他肯定会强烈反对的
  • 2007-4-12 11:31:03 回复该留言
  • quote 25.kuhanzhu
  • 不参与对骂讨论,说下本文:
    中文验证骂用得最甚的属腾讯,他不怕你不用,呵呵.
    以前用ASP用在自己的blog上过,不过……我自己都嫌麻烦,原因很简单,我自己的blog,肯定是我用得最多,也就是说,我最麻烦了,呵呵,所以去掉了。不过怀疑中文和英文或者数字对针对的机器人有什么区别,呵~
  • 2007-4-12 14:21:46 回复该留言
  • quote 26.haphic
  • http://haphic.com/
  • 楼上说的有道理, 特别是关于腾讯的... 这次又要我升级QQ密码保户, 那是个超麻烦的事情, 而且那三个问题麻烦得无聊. 他们没有技术解决盗号的问题, 就拿用户开刷, 根本就不管什么体验. 依我说, 盗号之"号"才是关键, 等蜂鸟出来看看吧.
    本来我就已经把QQ列为最不常用的网络程序了, 这一年下来用的越来越少, 用处也越来越小, 几个月不开QQ也没见谁就找不到我了. 这次可好, 直接把它卸了, 省得它每次打开时蹦着提醒我去升级什么保护, 还第一代第二代的, 够混!
    英文和数字相对好识别一些, 错误率低, 不过这种斗法好像谁都没有胜出的希望. 因此我总是试图搞一个方便的"在线同步黑名单". 不知Totoro升级得怎么样了.
    在一种验证码被突破之后有无验证码真的没什么区别的. 所以仍旧在傻 傻的输入验证码并要求访客也输入的做法就太可笑了. 严重同意楼上去掉验证码的作法!
  • 2007-4-14 17:50:25 回复该留言
  • quote 28.fufay
  • 不喜欢人家的技术也别骂人“白痴”,你自己就不“白痴”。
    “二楼”那位自以为是的人(人?),您有什么佳作让我等看看?

    ps:有种去腾讯骂去,那可是“中文验证”的鼻祖。
    在这骂能显你什么呀?
  • 2007-7-14 11:18:03 回复该留言
  • quote 29.adg
  • 北京亿网九州喷码机技术公司,是2006年12月18日由北京亿网九州电子技术有限公司、创办的专业从事喷码机研发、生产、销售、服务于一体的国际化企业,致力于为世界各国企业用户提供完美标识喷码解决方案。
  • 2008-7-1 15:24:17 回复该留言
  • quote 30.有棵树
  • 我觉得internet 的发言所给我的感觉就是肤浅但又装深沉,而这个装掩盖不了其个人素质的不堪。所以我们不难看出这个人无论从技术上还是个人素质上都是不堪的低下的。呵呵 我也所到这里为止了。
  • 2008-8-17 21:22:48 回复该留言
  • quote 32.万事大吉
  • 北京顺密发能源设备厂其主要产品有:真空超导采暖系统,秸秆气化炉,太阳能干发酵移动式沼气罐.位于顺义区南彩镇彩园工业区,本厂从事研究开发节能及再生能源产品。
  • 2008-9-2 14:03:52 回复该留言
  • quote 35.swengineer
  • 是在讨论技术,不是在讨论需求,本文只是一个技术点而已,大家都在蛋B什么呢,至少看了文章后我把我的验证码类重构了一下,支持中文验证码,但具体项目中用不用单说。
  • 2009-5-27 16:59:55 回复该留言
  • quote 36.essoduke
  • http://essoduke.org/
  • 既然中文验证会被批得这么惨,我也加入被批的行列了...

    中文成语版:
    http://app.essoduke.org/captcha/form2.php(繁体,含源码)

  • 2009-7-20 20:32:15 回复该留言
  • quote 37.internet是个大SB
  • 首先明确一点:2楼的internet就是个大SB!
    冲你妈个B冲!
    你这种人就是他妈的没事找抽型的!
    做这个东西,可能是需求,也可能是兴趣,楼主拿刀逼你这个SB用了啊?!
    再说,为什么你就知道没人用,腾讯不照样在用?腾讯脑残?你妈个B的开家比腾讯大的公司看看!
    上来看个文章就在那里冲!冲你妈个B冲!
    哥好心情上来看看,就被你这种傻逼给呛到了!
    还没学会说话就滚回娘胎去!
  • 2009-10-19 15:50:32 回复该留言

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Walle Build 91204

Copyright Sipo. Some Rights Reserved.