驗證碼系列-2-圖片驗證碼生成

圖片驗證碼生成原理

圖片驗證碼通常是 26 個字母加 0 到 9 隨機數生成,好比生成 4位或者6位的數字英文驗證碼。通常不區分大小寫。生成以後經過調用畫圖方法畫到承載驗證碼的帶底色的圖片中,頁面顯示時是一帶驗證碼張的圖片。
這種可能會被軟件破解識別。能夠加一些顏色或者線條的混淆來 下降識別率來,必定程度上防止被破解。node

圖形驗證碼可調整的主要屬性以下:

  • 驗證碼的字體
  • 驗證碼的字體大小
  • 驗證碼的字體顏色
  • 驗證碼內容的範圍(數字、字母、中文漢字)
  • 驗證碼的圖片大小。 邊框、邊框粗細、邊框顏色
  • 驗證碼的干擾線
  • 驗證碼的樣式(3D, 普通模糊)

驗證碼生成最佳實踐

  • 用不一樣的顏色渲染字符
  • 使某些字符比背景更暗,並使某些字符更亮
  • 爲背景和角色使用漸變色
  • 不要將全部字符垂直對齊
  • 不要回答單詞,以即可以使用字典
  • 使用更多的字符和符號
  • 使用大寫和小寫字符
  • 每次使用不一樣數量的字符
  • 更加重烈地旋轉一些字符(即倒置)
  • 作更多的字符重疊
  • 使單個字符的一些像素不接觸
  • 網格線與相同顏色的字符交叉
  • 考慮問天然語言問題

驗證碼庫

如下采集了來自網絡上經常使用的驗證碼庫: git

Java驗證碼生成庫 JCaptcha
Struts驗證碼插件 JCaptcha4Struts2
Java圖形驗證碼 SimpleCaptcha
Java驗證碼 kaptcha
Java驗證碼 patchca
Java驗證碼生成庫 imageRandom
iCaptcha
Java圖片驗證庫SkewPassImage
Java 驗證碼 Cagegithub

Python pycapt
PHP Gregwar/Captcha
PHP mewebstudio/captchaweb

Node node-captcha
Node gifcaptcha網絡

參考

cnn_captchadom

相關文章
相關標籤/搜索