Ⅰ PHP 繪制網站登錄首頁圖片驗證碼
幾乎所有的網站登錄頁都會有驗證碼,驗證碼是一種安全保護機制,在注冊時要求必須有人工操作進行驗證,用於防止垃圾注冊機大量注冊用戶賬號佔用伺服器內存從而使伺服器癱瘓。
圖片驗證碼的實現十分簡單。首先從指定字元集合中隨機抽取固定數目的字元,以一種不規則的方法畫在畫布上,再適當添加一些干擾點和干擾元素,最後將圖片輸出,一張嶄新的驗證碼就完成了。
先給大家展示下生成的驗證碼:
點擊刷新:
如果大家對實現效果非常滿意,請繼續往下看。
前端代碼如下:
<!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="#"
class="change"
onclick="changeVer()">點擊刷新</a><br/>
<input
type="submit"
value="登錄"/>
</form>
<script
type="text/javascript">
//刷新驗證碼
function
changeVer(){
document.getElementById("verImg").src="libs/verification.php?tmp="+Math.random();
}
</script>
</body>
</html>
php腳本文件驗證碼的代碼如下:
<?php
session_start();
//開啟session記錄驗證碼數據
vCode(4,
15);//設置驗證碼的字元個數和圖片基礎寬度
//vCode
字元數目,字體大小,圖片寬度、高度
function
vCode($num
=
4,
$size
=
20,
$width
=
0,
$height
=
0)
{
!$width
&&
$width
=
$num
*
$size
*
4
/
5
+
15;
!$height
&&
$height
=
$size
+
10;
//設置驗證碼字元集合
$str
=
"";
//保存獲取的驗證碼
$code
=
''
//隨機選取字元
for
($i
=
0;
$i
<
$num;
$i++)
{
$code
.=
$str[mt_rand(0,
strlen($str)-1)];
}
//創建驗證碼畫布
$im
=
imagecreatetruecolor($width,
$height);
//背景色
$back_color
=
imagecolorallocate($im,
mt_rand(0,100),mt_rand(0,100),
mt_rand(0,100));
//文本色
$text_color
=
imagecolorallocate($im,
mt_rand(100,
255),
mt_rand(100,
255),
mt_rand(100,
255));
imagefilledrectangle($im,
0,
0,
$width,
$height,
$back_color);
//
畫干擾線
for($i
=
0;$i
<
5;$i++)
{
$font_color
=
imagecolorallocate($im,
mt_rand(0,
255),
mt_rand(0,
255),
mt_rand(0,
255));
imagearc($im,
mt_rand(-
$width,
$width),
mt_rand(-
$height,
$height),
mt_rand(30,
$width
*
2),
mt_rand(20,
$height
*
2),
mt_rand(0,
360),
mt_rand(0,
360),
$font_color);
}
//
畫干擾點
for($i
=
0;$i
<
50;$i++)
{
$font_color
=
imagecolorallocate($im,
mt_rand(0,
255),
mt_rand(0,
255),
mt_rand(0,
255));
imagesetpixel($im,
mt_rand(0,
$width),
mt_rand(0,
$height),
$font_color);
}
//隨機旋轉角度數組
$array=array(5,4,3,2,1,0,-1,-2,-3,-4,-5);
//
輸出驗證碼
//
imagefttext(image,
size,
angle,
x,
y,
color,
fontfile,
text)
@imagefttext($im,
$size
,
array_rand($array),
12,
$size
+
6,
$text_color,
'c:WINDOWSFontssimsun.ttc',
$code);
$_SESSION["VerifyCode"]=$code;
//no-cache在每次請求時都會訪問伺服器
//max-age在請求1s後再次請求會再次訪問伺服器,must-revalidate則第一發送請求會訪問伺服器,之後不會再訪問伺服器
//
header("Cache-Control:
max-age=1,
s-maxage=1,
no-cache,
must-revalidate");
header("Cache-Control:
no-cache");
header("Content-type:
image/png;charset=gb2312");
//將圖片轉化為png格式
imagepng($im);
imagedestroy($im);
}
?>
好了,關於小編給大家介紹的php繪制圖片驗證就給大家介紹這么多,希望對大家有所幫助!
Ⅱ html怎麼實現圖片驗證碼
<HTML>
<HEAD>
<TITLE>生成驗證碼</TITLE>
<SCRIPT LANGUAGE="JavaScript">
function createCode(len)
{
var seed = new Array(
'abcdefghijklmnopqrstuvwxyz',
'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'0123456789'
); //創建需要的數據數組
var idx,i;
var result = ''; //返回的結果變數
for (i=0; i<len; i++) //根據指定的長度
{
idx = Math.floor(Math.random()*3); //獲得隨機數據的整數部分-獲取一個隨機整數
result += seed[idx].substr(Math.floor(Math.random()*(seed[idx].length)), 1);//根據隨機數獲取數據中一個值
}
return result; //返回隨機結果
}
function test() {
var inputRandom=document.getElementById("inputRandom").value;
var autoRandom=document.getElementById("autoRandom").innerHTML;
if(inputRandom==autoRandom) {
alert("通過驗證");
} else {
alert("沒有通過驗證");
}
}
</SCRIPT>
</HEAD>
<BODY>
驗證碼長度:
<SELECT id="sel">
<option value=1>1</option>
<option value=3>3</option>
<option value=5>5</option>
<option value=7 selected>7</option>
<option value=9>9</option>
</SELECT>
<BR>
<table>
<tr>
<td>驗證碼:</td>
<td><input type="text" id="inputRandom"></td>
<td><label id="autoRandom" value=""></label><INPUT TYPE="button" VALUE="獲取驗證碼" ONCLICK="autoRandom.innerHTML=createCode(sel.value)"></td>
<td><input type="button" value="驗證" onclick="test()"></td>
</tr>
</table>
<script type="text/javascript">
window.onload()=autoRandom.innerHTML=createCode(sel.value);
</script>
</BODY>
</HTML>
分享
本回答
Ⅲ 圖片驗證碼用簡訊驗證碼怎麼驗證
當點擊了注冊按鈕後,前端生成UUID隨機值,作為GET請求參數;
後端通過介面接受參數判斷是否為空,如果有內容進行下一步,
調用工具類生成驗證碼圖片和內容,
將驗證碼內容使用redis保存到本地,前端傳入的uuid作為key,設置content-type為'image/jpg'
在前端輸入圖片驗證碼,點擊發送簡訊時,向後端發送請求,並攜帶參數手機號,驗證碼內容,圖片ID。
後端校驗手機號,UUID,驗證碼,響應成功。
Ⅳ 圖形驗證碼是什麼意思如何偷入
圖形驗證也是驗證碼的一種,只是圖形驗證是為了防止某些破解軟體,進行無限嘗試破解,圖形的話,軟體無法識別,或識別的慢,這樣更加安全。
圖形驗證碼的輸入方式:
方式一:
1、會給一個圖形,通常會由字母或數字組成,具體如圖所示。
Ⅳ 什麼叫圖形驗證碼
圖形驗證碼是些沒有規則的圖文的組合,是一種區分用戶是計算機還是人的公共全自動程序。
驗證碼一般是防止批量注冊的,人眼看起來都費勁,何況是機器。不少網站為了防止用戶利用機器人自動注冊、登錄、灌水,都採用了驗證碼技術。所謂驗證碼,就是將一串隨機產生的數字或符號,生成一幅圖片, 圖片里加上一些干擾。
例如隨機畫數條直線,畫一些點(防止OCR),由用戶肉眼識別其中的驗證碼信息,輸入表單提交網站驗證,驗證成功後才能使用某項功能。
其他幾種驗證碼介紹:
1、簡訊驗證碼
簡訊驗證碼優點在於用戶的接受度高,使用成本極低。不過對於簡訊驗證來說,它的傳達率和安全性都有待提高。
2、語音驗證碼
語音驗證碼即便沒有泄露驗證碼,騙子依然有手段可以通過植入木馬等方式獲取手機簡訊驗證碼。相比簡訊驗證,語音驗證是驗證碼界的PLUS版本。
它是目前通用的簡訊驗證碼的升級和補充,大大提升了驗證碼的安全性,可用於2次確認用戶的交易、支付信息等安全要求較高的場景。由於到達率和及時性高,語言驗證碼同時也可以用於簡訊驗證碼無法接收的場景。
3、視頻驗證碼
視頻驗證碼是驗證碼中的新秀,視頻驗證碼中隨機數字、字母和中文組合而成的驗證碼動態嵌入到MP4,flv等格式的視頻中,增大了破解難度。驗證碼視頻動態變換,隨機響應,可以有效防範字典攻擊、窮舉攻擊等攻擊行為。
Ⅵ 圖片文字驗證碼怎麼輸入
摘要 ① 字母和數字:按字樣打入即可。
Ⅶ 驗證碼的工作原理是怎樣的
驗證碼的工作原理:
驗證碼就是將一串隨機產生的數字或符號,生成一幅圖片,圖片里加上一些干擾元素,由用戶肉眼識別其中的驗證碼信息,然後輸入表單提交網站驗證,驗證成功後才能使用某項功能。
驗證碼通常用在用戶登錄或留言的網頁界面中,當用戶在瀏覽器端輸入驗證碼之後,將用戶名、密碼和驗證碼等信息提交到伺服器,伺服器端獲取用戶的提交之後,判斷用戶提交的驗證碼字元與伺服器端保存的字元是否相同。如果相同,則通過對用戶提交信息的驗證;否則將提示沒有通過驗證的提示信息。
Ⅷ 如何實現驗證碼圖片的驗證
這個通常會由五部分組成 一 生成驗證碼 二 伺服器端保存驗證碼(通常為session) 三 將驗讓碼輸出為圖片到客戶端(也就是瀏覽器) 四 用戶提交表單,表單中包括了驗證碼 五 伺服器分析客戶端發送過來的驗證碼是否服務中保存的一至
Ⅸ 圖形驗證碼怎麼輸入求解
請問你是哪個軟體遇到的哪種圖形驗證碼不會輸入呢?
我目前遇到的驗證碼有如下幾種:
1,大小寫字母和數字組合,在旁邊的文本框中輸入答案即可;
2,漢字,在旁邊的文本框中輸入答案即可;
3,數學題,如:1+貳=?在旁邊的文本框中輸入答案 3 即可;
4,選擇題,如:葡萄藤結是蘋果還是葡萄(2個字)?在旁邊的文本框中輸入答案 葡萄 即可;
5,多選題,如:12306訂票網站的,這種是將每一個答案點一下即可;
6,給出幾個字和一句話,需要用滑鼠拖動的方式使其跟幾個字重疊度達到一定比例時通過(這種目前不多見,忘記在哪用過了,找著了再補充);
7,語音驗證碼,將聽到的驗證碼輸入即可(這種目前也不多見,忘記在哪用過了,找著了再補充)。
(9)圖片驗證碼怎麼實現擴展閱讀:
1.驗證碼一般是防止批量注冊的,人眼看起來都費勁,何況是機器。二像網路貼吧未成為該吧會員發貼要輸入驗證碼大概是防止大規模匿名回帖的發生。目前,不少網站為了防止用戶利用機器人自動注冊、登錄、灌水,都採用了驗證碼技術。所謂驗證碼,就是將一串隨機產生的數字或符號,生成一幅圖片, 圖片里加上一些干擾,例如隨機畫數條直線,畫一些點(防止OCR),由用戶肉眼識別其中的驗證碼信息,輸入表單提交網站驗證,驗證成功後才能使用某項功能。 [1]
2.一般注冊用戶ID的地方以及各大論壇都要輸入驗證碼。
3.常見的驗證碼:
(1)四位數字和字母,可能都是字母,也可能都是數字,隨機的4位字元串,最原始的驗證碼,驗證作用幾乎為零。CSDN網站用戶登錄用的是GIF格式,常用的隨機數字圖片驗證碼。圖片上的字元比較中規中矩,驗證作用比上一個好。
(2)漢字是注冊目前最新的驗證碼,隨機生成,打起來比較難,例如QQ申訴頁面。
(3)MS的hotmail申請時候的是BMP格式, 隨機數字+隨機大寫英文字母+隨機干擾像素+隨機位置。
(4)韓文或日文,現在跑跑HF上MS注冊要打韓文,增加了難度。
(5)Google的Gmail注冊時候的是JPG格式,隨機英文字母+隨機顏色+隨機位置+隨機長度。
(6)其他各大論壇的是XBM格式,內容隨機。
(7)廣告驗證碼:輸入廣告中的部分內容即可,特點是可以給網站帶來額外收入,也可以使使用者耳目一新。
(8)問題驗證碼:問題驗證碼主要是以問答式的形式來進行填寫。
Ⅹ JS點擊圖片後顯示驗證碼 如何實現
最簡單的方法你把圖一的顯示驗證碼也弄成一個圖片,比如叫code.png,上面你的代碼就能換成
<img src="code.png" onclick="this.src ={$maccms.path_tpl}picture/captcha.png"