一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - PHP教程 - PHP實(shí)現(xiàn)算式驗(yàn)證碼和漢字驗(yàn)證碼實(shí)例

PHP實(shí)現(xiàn)算式驗(yàn)證碼和漢字驗(yàn)證碼實(shí)例

2020-09-08 15:32PHP之家 PHP教程

這篇文章主要介紹了PHP實(shí)現(xiàn)算式驗(yàn)證碼和漢字驗(yàn)證碼實(shí)例,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下

PHP網(wǎng)站開(kāi)發(fā)中,驗(yàn)證碼可以有效地保護(hù)我們的表單不被惡意提交,但是如果不使用算式驗(yàn)證碼或者漢字驗(yàn)證碼,僅僅使用簡(jiǎn)單的字母或者數(shù)字驗(yàn)證碼,這樣的驗(yàn)證碼方案真的安全嗎?

大家知道簡(jiǎn)單數(shù)字或者字母驗(yàn)證碼很容易被破解,但是算式驗(yàn)證碼或者中文漢字驗(yàn)證碼不容易被破解,所以建議大家在使用驗(yàn)證碼的時(shí)候,盡量用算式驗(yàn)證碼或者中文漢字驗(yàn)證碼。

下面是我寫(xiě)的兩種驗(yàn)證碼代碼,有用到的朋友可以參考下:

1.算式驗(yàn)證碼:

復(fù)制代碼 代碼如下:

<?php
session_start();
header("Content-type: image/png");
$num1 = mt_rand(0,9);//第一位數(shù)
$num2 = mt_rand(1,9);//第二位數(shù)
$type_str = "+-*";//方法字符串集合
$type = substr($type_str,rand(0,2),1);//隨機(jī)方法
$change = mt_rand(1,3);
if($change==1){
 $code = "$num1$type$num2=?";
 $result = "$verifyCode=$num1$type$num2;";
 eval($result);
 $_SESSION['authnum_session'] = $verifyCode; 
}elseif($change==2){
 $result = "$verifyCode=$num1$type$num2;";
 eval($result);
    $code = $num1.$type."_=".$verifyCode;
 $_SESSION['authnum_session'] = $num2; 
}elseif($change==3){
 $result = "$verifyCode=$num1$type$num2;";
 eval($result);
    $code = "_".$type.$num2."=".$verifyCode;
 $_SESSION['authnum_session'] = $num1; 
}
$im = imagecreate(68,28);  
$black = imagecolorallocate($im, 0,0,0);    
$white = imagecolorallocate($im, 255,255,255);
$gray = imagecolorallocate($im, 200,200,200);
$red = imagecolorallocate($im, 255, 0, 0);
imagefill($im,0,0,$white);       
imagestring($im, 5, 10, 8, $code, $black);   
for($i=0;$i<70;$i++) {
 imagesetpixel($im, mt_rand(0, 58) , mt_rand(0, 28) , $black);
 imagesetpixel($im, mt_rand(0, 58) , mt_rand(0, 28) , $red);
 imagesetpixel($im, mt_rand(0, 58) , mt_rand(0, 28) , $gray);
}
imagepng($im);
imagedestroy($im);
?>


2.中文漢字驗(yàn)證碼:

復(fù)制代碼 代碼如下:


<?php
session_start();
$ch_str="的一是在了不和有大這主中人上為們地個(gè)用工時(shí)要?jiǎng)訃?guó)產(chǎn)以我到他會(huì)作來(lái)分生對(duì)于學(xué)下級(jí)就年階義發(fā)成部民可出能方進(jìn)同行面說(shuō)種過(guò)命度革而多子后自社加小機(jī)也經(jīng)力線本電高量長(zhǎng)黨得實(shí)家定深法表著水理化爭(zhēng)現(xiàn)所二起政三好十戰(zhàn)無(wú)農(nóng)使性前等反體合斗路圖把結(jié)第里正新開(kāi)論之物從當(dāng)兩些還天資事隊(duì)批如應(yīng)形想制心樣干都向變關(guān)點(diǎn)育重其思與間內(nèi)去因件日利相由壓?jiǎn)T氣業(yè)代全組數(shù)果期導(dǎo)平各基或月毛然問(wèn)比展那它最及外沒(méi)看治提五解系林者米群頭意只明四道馬認(rèn)次文通但條較克又公孔領(lǐng)軍流入接席位情運(yùn)器并飛原油放立題質(zhì)指建區(qū)驗(yàn)活眾很教決特此常石強(qiáng)極土少已根共直團(tuán)統(tǒng)式轉(zhuǎn)別造切九你取西持總料連任志觀調(diào)七么山程百報(bào)更見(jiàn)必真保熱委手改管處己將修支識(shí)病象幾先老光專什六型具示復(fù)安帶每東增則完風(fēng)回南廣勞輪科北打積車計(jì)給節(jié)做務(wù)被整聯(lián)步類集號(hào)列溫裝即毫知軸研單色堅(jiān)據(jù)速防史拉世設(shè)達(dá)爾場(chǎng)織歷花受求傳口斷況采精金界品判參層止邊清至萬(wàn)確究書(shū)術(shù)狀廠須離再目海交權(quán)且兒青才證低越際八試規(guī)斯近注辦布門(mén)鐵需走議縣兵固除般引齒千勝細(xì)影濟(jì)白格效置推空配刀葉率述今選養(yǎng)德話查差半敵始片施響收華覺(jué)備名紅續(xù)均藥標(biāo)記難存測(cè)士身緊液派準(zhǔn)斤角降維板許破述技消底床田勢(shì)端感往神便賀村構(gòu)照容非搞亞磨族火段算適講按值美態(tài)黃易彪服早班麥削信排臺(tái)聲該擊素張密害侯草何樹(shù)肥繼右屬市嚴(yán)徑螺檢左頁(yè)抗蘇顯苦英快稱壞移約巴材省黑武培著河帝僅針怎植京助升王眼她抓含苗副雜普談圍食射源例致酸舊卻充足短劃劑宣環(huán)落首尺波承粉踐府魚(yú)隨考刻靠夠滿夫失包住促枝局菌桿周護(hù)巖師舉曲春元超負(fù)砂封換太模貧減陽(yáng)揚(yáng)江析畝木言球朝醫(yī)校古呢稻宋聽(tīng)唯輸滑站另衛(wèi)字鼓剛寫(xiě)劉微略范供阿塊某功套友限項(xiàng)余倒卷創(chuàng)律雨讓骨遠(yuǎn)幫初皮播優(yōu)占死毒圈偉季訓(xùn)控激找叫云互跟裂糧粒母練塞鋼頂策雙留誤礎(chǔ)吸阻故寸盾晚絲女散焊功株親院冷徹彈錯(cuò)散商視藝滅版烈零室輕血倍缺厘泵察絕富城沖噴壤簡(jiǎn)否柱李望盤(pán)磁雄似困鞏益洲脫投送奴側(cè)潤(rùn)蓋揮距觸星松送獲興獨(dú)官混紀(jì)依未突架寬冬章濕偏紋吃執(zhí)閥礦寨責(zé)熟穩(wěn)奪硬價(jià)努翻奇甲預(yù)職評(píng)讀背協(xié)損棉侵灰雖矛厚羅泥辟告卵箱掌氧恩愛(ài)停曾溶營(yíng)終綱孟錢(qián)待盡俄縮沙退陳討奮械載胞幼哪剝迫旋征槽倒握擔(dān)仍呀鮮吧卡粗介鉆逐弱腳怕鹽末陰豐編印蜂急拿擴(kuò)傷飛露核緣游振操央伍域甚迅輝異序免紙夜鄉(xiāng)久隸缸夾念蘭映溝乙嗎儒殺汽磷艱晶插埃燃?xì)g鐵補(bǔ)咱芽永瓦傾陣碳演威附牙芽永瓦斜灌歐獻(xiàn)順豬洋腐請(qǐng)透司危括脈宜笑若尾束壯暴企菜穗楚漢愈綠拖牛份染既秋遍鍛玉夏療尖殖井費(fèi)州訪吹榮銅沿替滾客召旱悟刺腦措貫藏敢令隙爐殼硫煤迎鑄粘探臨薄旬善福縱擇禮愿伏殘雷延煙句純漸耕跑澤慢栽魯赤繁境潮橫掉錐希池?cái)〈倭林^托伙哲懷割擺貢呈勁財(cái)儀沉煉麻罪祖息車穿貨銷齊鼠抽畫(huà)飼龍庫(kù)守筑房歌寒喜哥洗蝕廢納腹乎錄鏡婦惡脂莊擦險(xiǎn)贊鐘搖典柄辯竹谷賣亂虛橋奧伯趕垂途額壁網(wǎng)截野遺靜謀弄掛課鎮(zhèn)妄盛耐援扎慮鍵歸符慶聚繞摩忙舞遇索顧膠羊湖釘仁音跡碎伸燈避泛亡答勇頻皇柳哈揭甘諾概憲濃島襲誰(shuí)洪謝炮澆斑訊懂靈蛋閉孩釋乳巨徒私銀伊景坦累勻霉杜樂(lè)勒隔彎績(jī)招紹胡呼痛峰零柴簧午跳居尚丁秦稍追梁折耗堿殊崗?fù)谑先袆《押蘸尚睾馇谀て邱v案刊秧緩?fù)挂奂舸ㄑ╂湞O啦臉戶洛孢勃盟買(mǎi)楊宗焦賽旗濾硅炭股坐蒸凝竟陷槍黎救冒暗洞犯筒您宋弧爆謬涂味津臂障褐陸啊健尊豆拔莫抵桑坡縫警挑污冰柬嘴啥飯塑寄趙喊墊康遵牧遭幅園腔訂香肉弟屋敏恢忘衣孫齡嶺騙休借丹渡耳刨虎筆稀昆浪薩茶滴淺擁穴覆倫娘噸浸袖珠雌媽紫戲塔錘震歲貌潔剖牢鋒疑霸閃埔猛訴刷狠忽災(zāi)鬧喬唐漏聞沈熔氯荒莖男凡搶像漿旁玻亦忠唱蒙予紛捕鎖尤乘烏智淡允叛畜俘摸銹掃畢璃寶芯爺鑒秘凈蔣鈣肩騰枯拋軌堂拌爸循誘祝勵(lì)肯酒繩窮塘燥泡袋朗喂鋁軟渠顆慣貿(mào)糞綜墻趨彼屆墨礙啟逆卸航霧冠丙街萊貝輻腸付吉滲瑞驚頓擠秒懸姆爛森糖圣凹陶詞遲蠶億矩";
$len = mb_strlen($ch_str,"utf-8");//漢字長(zhǎng)度
$str = array();
for($i=0;$i<4;$i++){
   $pos = mt_rand(0,$len-5);//開(kāi)始位置
   $str[] = mb_substr($ch_str,$pos,1,"utf-8");
}
$authnum_session = implode("",$str);
$_SESSION['authnum_session'] = $authnum_session;   //記錄到session
Header("Content-type: image/PNG");
//圖片的長(zhǎng)和高
$image_x=100;
$image_y=50;
$im = imagecreate($image_x,$image_y);
//這里取圖片底色為白色
$bkg = ImageColorAllocate($im,255,255,255);
//顯示的字體樣式,這個(gè)要把文件放到對(duì)應(yīng)的目錄中,如果你沒(méi)有文件就去window的字體文件中找一個(gè)吧。
$fnt = "simhei.ttf";
//為圖像分配一些顏色
$white=ImageColorAllocate($im,234,185,95);
//在圖片上畫(huà)橢圓弧,指定下坐標(biāo)點(diǎn)
imagearc($im, 150, 8, 20, 20, 75, 170, $white);
imagearc($im, 180, 7,50, 30, 75, 175, $white);
//在圖片上畫(huà)一條線段,指定下坐標(biāo)點(diǎn)
imageline($im,20,20,180,30,$white);
imageline($im,20,18,170,50,$white);
imageline($im,25,50,80,50,$white);
//亂點(diǎn)的數(shù)量
$noise_num=3000;
$line_num=50;
//各種混亂字符的顏色
$rectangle_color=imagecolorallocate($im,0xAA,0xAA,0xAA);
$noise_color=imagecolorallocate($im,0x00,0x00,0x00);
$font_color=imagecolorallocate($im,0x00,0x00,0x00);
for($i=0;$i<$noise_num;$i++)
{
    //在一個(gè)坐標(biāo)點(diǎn)上畫(huà)一個(gè)單一像素,這個(gè)點(diǎn)上面定義了,是黑色的。
    //imagesetpixel($im,mt_rand(0,$image_x),mt_rand(0,$image_y),$noise_color);
}
for($i=0;$i<$line_num;$i++)
{
    $line_color=imagecolorallocate($im,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
    //在兩個(gè)坐標(biāo)點(diǎn)間畫(huà)一條線,顏色在上面定義
    imageline($im,mt_rand(0,$image_x),mt_rand(0,$image_y),mt_rand(0,$image_x),mt_rand(0,$image_y),$line_color);   
}
for ($i=0;$i<4;$i++)
{
    ImageTTFText($im, rand(18,20), rand(0,20), rand(($image_x/4)*$i+$image_x/100,($image_x/4)*$i+$image_x/8), rand($image_y/2+$image_y/10,$image_y/2+$image_y/5), $font_color, $fnt, $str[$i]);

 

}
ImagePNG($im);
ImageDestroy($im);
?>

 

字體文件:simhei.rar點(diǎn)擊此處本站下載

注意:

中文漢字驗(yàn)證碼單獨(dú)執(zhí)行,然后獲取session會(huì)發(fā)現(xiàn)驗(yàn)證碼和session內(nèi)容不一致。但是在img 標(biāo)簽中src屬性中引用這個(gè)中文漢字驗(yàn)證碼文件時(shí),然后獲取session,這時(shí)兩者內(nèi)容時(shí)一致的。

感興趣的朋友可以對(duì)此進(jìn)一步加以完善。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本大片网 | 精品国产自在现线拍国语 | 国产一区二区三区四区波多野结衣 | 免费日批软件 | 精品亚洲视频在线观看 | 青青草原网 | 亚洲风情无码免费视频 | japonensis中国东北老人 | 欧美一区二区三区四区五区六区 | 欧美日韩亚洲国内综合网俺 | 小早川怜子亚洲综合中文字幕 | 国产精品国产三级国产专区不 | 国产日韩欧美综合一区二区三区 | 精品无码久久久久久久久 | 色色色资源站 | 国产精品一区二区久久 | 四川女人偷人真实视频 | 91夜色视频| m3u8久久国产精品影院 | 含羞草国产亚洲精品岁国产精品 | 香蕉97超级碰碰碰免费公 | 九九免费高清在线观看视频 | 欧美一级片免费看 | gay台湾无套男同志可播放 | brazzers欧美教师 | 韩国三级做爰 | 毛片一区二区三区提莫影院 | 亚洲国产在| 精品亚洲欧美中文字幕在线看 | 精品在线免费观看视频 | 色天天综合色天天看 | 成人免费视频在 | 消息称老熟妇乱视频一区二区 | 91精品综合久久久久m3u8 | 2022超帅男同gayxxx | 啊啊啊好大好爽视频 | 日处女b | 驯服有夫之妇HD中字日本 | 免费观看视频网站 | 精品一区二区三区波多野结衣 | 猫咪免费人成网站在线观看入口 |