1. 程式人生 > >做中文驗證碼

做中文驗證碼

知識點 imagettftext — 用 TrueType 字型向影象寫入文字(具體引數看手冊)

/*
如何產生隨機的中文字串 中文安其uniccode編碼 是有規律的 位於 0x4e00-0x9fa0 
但是請注意 對於客戶來說 能否認識 ,所以在實際專案中 只是抽取幾百或上千的常用漢字  放數組裡  隨機選取
*/

//選常用字型 放陣列中 
$char = array('中','華','人','民','共','和','國','我','是','湖','南','郴','州');
//打亂
shuffle($char);
//隨機選取
$code = implode('',array_slice($char, 0,4));
//畫布
$im = imagecreatetruecolor(68, 30);
//建立顏料
$gray = imagecolorallocate($im, 200,200,200);
$blue = imagecolorallocate($im, 0,0,255);
//隨機顏色
$randcolor = imagecolorallocate($im, mt_rand(0,150), mt_rand(0,150),mt_rand(0,150));
$randcolor1 = imagecolorallocate($im, mt_rand(0,150), mt_rand(0,150),mt_rand(0,150));
$randcolor2 = imagecolorallocate($im, mt_rand(0,150), mt_rand(0,150),mt_rand(0,150));
//隨機線
imageline($im, 0, mt_rand(0,30), 68, mt_rand(0,30), $randcolor);
imageline($im, 0, mt_rand(0,30), 68, mt_rand(0,30), $randcolor1);
imageline($im, 0, mt_rand(0,30), 68, mt_rand(0,30), $randcolor2);

//填充背景
imagefill($im, 0, 0, $gray);
//寫字字型設定
imagettftext($im, 12, 0, 2, 20, $blue, './ch/msyh.ttf', $code);
//告訴瀏覽器格式

header('content-type: image/jpeg');
//顯示影象
imagejpeg($im);

//銷燬資源
imagedestroy($im);
<img src="https://img-blog.csdn.net/20160930135840356?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" style="font-family: Arial, Helvetica, sans-serif;" alt="" />

相關推薦

中文驗證

知識點 imagettftext — 用 TrueType 字型向影象寫入文字(具體引數看手冊) /* 如何產生隨機的中文字串 中文安其uniccode編碼 是有規律的 位於 0x4e00-0x9fa

使用nodejs去一個驗證

req sta 一個 驗證 buffer class red apt img let express = require(‘express‘); let captchapng = require(‘captchapng‘); let app = express();

用ajax去圖片驗證登入

下面是view()程式碼<script src="~/Scripts/jquery-1.10.2.js"></script> @*以下就是圖片驗證碼;使用者名稱、密碼、及驗證碼*@   <script language="javascript" type="tex

程式設計師放大招教你網站怎麼簡訊驗證防刷驗證機制-速

 文章來源:http://www.4006026717.com 在我們開始傳送了 簡訊驗證碼 的時候在前臺中會出現一分鐘的倒計時,進行了這個操作了之後,在這段時間之內,如果使用者多次提交的話是無法傳送請求的。這種的方法是最為經常使用的一種,雖然很簡單,但是卻非常的好用,但是有個缺點就是,如果稍微懂一點技術的

卷積神經網路(CNN)學習演算法之----基於LeNet網路的中文驗證識別

  由於公司需要進行了中文驗證碼的圖片識別開發,最近一段時間剛忙完上線,好不容易閒下來就繼上篇《基於Windows10 x64+visual Studio2013+Python2.7.12環境下的Caffe配置學習 》文章,記錄下利用caffe進行中文驗證碼圖片識別的開發過程。由於這裡主要介紹開發和實現過程,

如何使用reCaptcha(2.0版本)來網站驗證

reCaptcha是Google開發的驗證碼工具。使用十分簡單,本文介紹的是其2.0版本的使用方法。 登陸你的Google賬戶,沒有的話是用不了的。在這裡來申請一對key ,如下圖 一個Google

Tesseract圖片驗證識別

linux下的安裝 [ 參考這裡 ] 環境準備 yum -y update yum -y install libstdc++ autoconf automake libtool autoconf-archive pkg-config gcc gc

java實現驗證類生成中文驗證

package xwcms.net.service; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java

PHP生成中文驗證並檢測對錯例項

PHP生成中文驗證碼並檢測對錯例項,中文驗證碼的例子還是比較少的,今天給大家分享一下,支援自定義中文、字型、背景色等 生成驗證碼

中文輸入法,輸入驗證,字母之間出現空格的解決辦法

http 驗證 中文輸入法 col get html color change china 在UITextfield中輸入ABCD會得到A B C D這種字母之間的空格需要特殊的方法才能清除掉。 -(BOOL)textField:(UITextField *)textFi

用python驗證

引用PIL模組 效果圖展示: from PIL import ImageDraw,ImageFont from PIL import Image import random from io import BytesIO#在記憶體中建立 def get_random_color()

使用js帶干擾線的驗證

程式碼如下 <body onLoad="drawCoda()"> <canvas id="mycanvas" onclick="drawCoda()"></canvas> <script

使用 mitmproxy + python 攔截代理 ( 後附貓眼跳轉到美團驗證的攔截指令碼 )

  From:https://blog.wolfogre.com/posts/usage-of-mitmproxy             http://www.cn

Java實現中文算數驗證(算數運算+-*/)

為了防止,頁面向資料庫暴力註冊入力,使用者登入暴力破解,所以加入驗證碼,驗證碼無法被軟體獲取上邊的內容(加入算數計算,更加安全),所以在現在技術,暫時安全。 先看效果圖: 第一次載入比較慢,防止無法載入驗證碼顯示,後臺獲取準備好的預設正在載入圖片(靜態圖片

自動化測試的時候如何應對驗證問題

下面筆者根據自己的經驗來談一下處理驗證碼的幾種方法。 1、去掉驗證碼 這是最簡單的方法,對於開發人員來說,只是把驗證碼的相關程式碼註釋掉即可,如果是在測試環境, 這樣做可省去了測試人員不少麻煩, 如果自動化指令碼是要在正式環境跑, 這樣就給系統帶來了一定的風險。 2、設

【Web】Java生成中文GIF動態驗證-整合SpringMVC

說明 GIF驗證碼相對於JPG圖片驗證碼來說,要更難破解一些,加大了破解的代價。 從昨天到現在,寫了一個小小的GIF驗證碼專案(中文成語)。 當然,你可以自己修改成字母數字的。我只是單純的覺得中文驗證碼的破解代價更高一點~ 我在這裡生成GIF圖片

htmlunit爬蟲繞過驗證抓取網站資料

htmlunit 是一款開源的java 頁面分析工具,讀取頁面後,可以有效的使用htmlunit分析頁面上的內容。專案可以模擬瀏覽器執行,被譽為java瀏覽器的開源實現。這個沒有介面的瀏覽器,執行速度也是非常迅速的。 利用htmlunit 抓取網站是非常方便的,抓取一個ht

Java 處理中文名稱檔案下載的處理、驗證生成

建立DownLoadServlet,備份使用 import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.net.URLEncoder; im

vue一個有驗證的登陸頁面和註冊頁面,敲回車登陸

一:登陸頁面 效果圖: 樣式問題: 背景頁面UI給的尺寸比較小的情況下,如何按比例不平埔背景呢? .login { width: 100%; padding-bottom: 62.5%; height: 0; background

yii專案負載均衡時請注意驗證session共享問題

 眾所周知,做負載均衡的時候,必須解決兩個棘手的問題,一是session會話共享問題,二是上傳檔案同步問題,今天給大家分享一個我遇到過的問題,yii專案登入功能驗證碼無法同步的解決辦法。 本文測試環境: 負載均衡機一臺(nginx,做分發用) A伺服器(程式所在機器