Documentation
¶
Overview ¶
Package base64Captcha supports digits, numbers,alphabet, arithmetic, audio and digit-alphabet captcha. base64Captcha is used for fast development of RESTful APIs, web apps and backend services in Go. give a string identifier to the package and it returns with a base64-encoding-png-string
Index ¶
- Constants
- Variables
- func Asset(name string) ([]byte, error)
- func CaptchaWriteToBase64Encoding(cap CaptchaInterface) string
- func CaptchaWriteToFile(cap CaptchaInterface, outputDir, fileName, fileExt string) error
- func SetCustomStore(s store.Store)
- func VerifyCaptcha(identifier, verifyValue string) bool
- func VerifyCaptchaAndIsClear(identifier, verifyValue string, isClear bool) bool
- type Audio
- type CaptchaImageChar
- type CaptchaImageDigit
- type CaptchaInterface
- type CaptchaItem
- type ConfigAudio
- type ConfigCharacter
- type ConfigDigit
Constants ¶
const ( //TxtNumbers chacters for numbers. TxtNumbers = "012346789" //TxtAlphabet characters for alphabet. TxtAlphabet = "ABCDEFGHJKMNOQRSTUVXYZabcdefghjkmnoqrstuvxyz" //TxtSimpleCharaters simple numbers and alphabet TxtSimpleCharaters = "13467ertyiadfhjkxcvbnERTYADFGHJKXCVBN" //MimeTypeCaptchaAudio output base64 mine-type. MimeTypeCaptchaAudio = "audio/wav" //MimeTypeCaptchaImage output base64 mine-type. MimeTypeCaptchaImage = "image/png" //FileExtCaptchaAudio output file extension. FileExtCaptchaAudio = "wav" //FileExtCaptchaImage output file extension. FileExtCaptchaImage = "png" )
const ( //CaptchaComplexLower complex level lower. CaptchaComplexLower = iota //CaptchaComplexMedium complex level medium. CaptchaComplexMedium //CaptchaComplexHigh complex level high. CaptchaComplexHigh )
const ( //CaptchaModeNumber mode number. CaptchaModeNumber = iota //CaptchaModeAlphabet mode alphabet. CaptchaModeAlphabet //CaptchaModeArithmetic mode arithmetic. CaptchaModeArithmetic //CaptchaModeNumberAlphabet mode mix number and alphabet,this is also default mode. CaptchaModeNumberAlphabet )
const ( // DefaultLen Default number of digits in captcha solution. // 默认数字验证长度. DefaultLen = 6 // MaxSkew max absolute skew factor of a single digit. // 图像验证码的最大干扰洗漱. MaxSkew = 0.7 // DotCount Number of background circles. // 图像验证码干扰圆点的数量. DotCount = 20 )
Variables ¶
var ( // GCLimitNumber The number of captchas created that triggers garbage collection used by default store. // 默认图像验证GC清理的上限个数 GCLimitNumber = 10240 // Expiration time of captchas used by default store. // 内存保存验证码的时限 Expiration = 10 * time.Minute )
Functions ¶
func Asset ¶
Asset loads and returns the asset for the given name. It returns an error if the asset could not be found or could not be loaded.
func CaptchaWriteToBase64Encoding ¶
func CaptchaWriteToBase64Encoding(cap CaptchaInterface) string
CaptchaWriteToBase64Encoding converts captcha to base64 encoding string. mimeType is one of "audio/wav" "image/png".
func CaptchaWriteToFile ¶
func CaptchaWriteToFile(cap CaptchaInterface, outputDir, fileName, fileExt string) error
CaptchaWriteToFile output captcha to file. fileExt is one of "png","wav"
func SetCustomStore ¶
SetCustomStore sets custom storage for captchas, replacing the default memory store. This function must be called before generating any captchas.
func VerifyCaptcha ¶
VerifyCaptcha by given id key and remove the captcha value in store, return boolean value. 验证图像验证码,返回boolean.
func VerifyCaptchaAndIsClear ¶
VerifyCaptchaAndIsClear verify captcha, return boolean value. identifier is the captcha id, verifyValue is the captcha image value, isClear is whether to clear the value in store. 验证图像验证码,返回boolean.
Types ¶
type Audio ¶
type Audio struct {
CaptchaItem
// contains filtered or unexported fields
}
Audio captcha-audio-engine return type.
func EngineAudioCreate ¶
func EngineAudioCreate(id string, config ConfigAudio) *Audio
EngineAudioCreate create captcha with configAudio.
func (*Audio) BinaryEncodeing ¶
BinaryEncodeing encodes an sound to wave and returns the result as a byte slice.
type CaptchaImageChar ¶
type CaptchaImageChar struct {
CaptchaItem
Complex int
// contains filtered or unexported fields
}
CaptchaImageChar captcha-engine-char return type.
func EngineCharCreate ¶
func EngineCharCreate(config ConfigCharacter) *CaptchaImageChar
EngineCharCreate create captcha with config struct.
func (*CaptchaImageChar) BinaryEncodeing ¶
func (captcha *CaptchaImageChar) BinaryEncodeing() []byte
BinaryEncodeing save captcha image to binary. 保存图片到io.
type CaptchaImageDigit ¶
type CaptchaImageDigit struct {
CaptchaItem
*image.Paletted
// contains filtered or unexported fields
}
CaptchaImageDigit digits captcha Struct
func EngineDigitsCreate ¶
func EngineDigitsCreate(id string, config ConfigDigit) *CaptchaImageDigit
EngineDigitsCreate create captcha by engine-digits with configuration.
func (*CaptchaImageDigit) BinaryEncodeing ¶
func (m *CaptchaImageDigit) BinaryEncodeing() []byte
BinaryEncodeing encodes an image to PNG and returns the result as a byte slice.
type CaptchaInterface ¶
type CaptchaInterface interface {
// BinaryEncodeing covert to bytes
BinaryEncodeing() []byte
// WriteTo output captcha entity
WriteTo(w io.Writer) (n int64, err error)
}
CaptchaInterface captcha interface for captcha engine to to write staff
func GenerateCaptcha ¶
func GenerateCaptcha(idKey string, configuration interface{}) (id string, captchaInstance CaptchaInterface)
GenerateCaptcha create captcha by config struct and id. idkey can be an empty string, base64 will create a unique id four you. if idKey is a empty string, the package will generate a random unique identifier for you. configuration struct should be one of those struct ConfigAudio, ConfigCharacter, ConfigDigit.
Example Code
//config struct for digits
var configD = base64Captcha.ConfigDigit{
Height: 80,
Width: 240,
MaxSkew: 0.7,
DotCount: 80,
CaptchaLen: 5,
}
//config struct for audio
var configA = base64Captcha.ConfigAudio{
CaptchaLen: 6,
Language: "zh",
}
//config struct for Character
var configC = base64Captcha.ConfigCharacter{
Height: 60,
Width: 240,
//const CaptchaModeNumber:数字,CaptchaModeAlphabet:字母,CaptchaModeArithmetic:算术,CaptchaModeNumberAlphabet:数字字母混合.
Mode: base64Captcha.CaptchaModeNumber,
ComplexOfNoiseText: base64Captcha.CaptchaComplexLower,
ComplexOfNoiseDot: base64Captcha.CaptchaComplexLower,
IsUseSimpleFont: true,
IsShowHollowLine: false,
IsShowNoiseDot: false,
IsShowNoiseText: false,
IsShowSlimeLine: false,
IsShowSineLine: false,
CaptchaLen: 6,
}
//create a audio captcha.
//GenerateCaptcha first parameter is empty string,so the package will generate a random uuid for you.
idKeyA,capA := base64Captcha.GenerateCaptcha("",configA)
//write to base64 string.
//GenerateCaptcha first parameter is empty string,so the package will generate a random uuid for you.
base64stringA := base64Captcha.CaptchaWriteToBase64Encoding(capA)
//create a characters captcha.
//GenerateCaptcha first parameter is empty string,so the package will generate a random uuid for you.
idKeyC,capC := base64Captcha.GenerateCaptcha("",configC)
//write to base64 string.
base64stringC := base64Captcha.CaptchaWriteToBase64Encoding(capC)
//create a digits captcha.
idKeyD,capD := base64Captcha.GenerateCaptcha("",configD)
//write to base64 string.
base64stringD := base64Captcha.CaptchaWriteToBase64Encoding(capD)
type CaptchaItem ¶
type CaptchaItem struct {
// Content captcha entity content.
Content string
// VerifyValue captcha verify value.
VerifyValue string
// ImageWidth image width pixel.
ImageWidth int
// ImageHeight image height pixel.
ImageHeight int
}
CaptchaItem captcha basic information.
type ConfigAudio ¶
type ConfigAudio struct {
// CaptchaLen Default number of digits in captcha solution.
CaptchaLen int
// Language possible values for lang are "en", "ja", "ru", "zh".
Language string
}
ConfigAudio captcha config for captcha-engine-audio.
type ConfigCharacter ¶
type ConfigCharacter struct {
// Height png height in pixel.
// 图像验证码的高度像素.
Height int `yaml:"height"`
// Width Captcha png width in pixel.
// 图像验证码的宽度像素
Width int `yaml:"width"`
//Mode : base64captcha.CaptchaModeNumber=0, base64captcha.CaptchaModeAlphabet=1, base64captcha.CaptchaModeArithmetic=2, base64captcha.CaptchaModeNumberAlphabet=3.
Mode int `yaml:"mode"`
//IsUseSimpleFont is use simply font(...base64Captcha/fonts/RitaSmith.ttf).
IsUseSimpleFont bool `yaml:"isUseSimpleFont"`
//ComplexOfNoiseText text noise count.
ComplexOfNoiseText int `yaml:"complexOfNoiseText"`
//ComplexOfNoiseDot dot noise count.
ComplexOfNoiseDot int `yaml:"complexOfNoiseDot"`
//IsShowHollowLine is show hollow line.
IsShowHollowLine bool `yaml:"isShowHollowLine"`
//IsShowNoiseDot is show noise dot.
IsShowNoiseDot bool `yaml:"isShowNoiseDot"`
//IsShowNoiseText is show noise text.
IsShowNoiseText bool `yaml:"isShowNoiseText"`
//IsShowSlimeLine is show slime line.
IsShowSlimeLine bool `yaml:"isShowSlimeLine"`
//IsShowSineLine is show sine line.
IsShowSineLine bool `yaml:"isShowSineLine"`
// CaptchaLen Default number of digits in captcha solution.
// 默认数字验证长度6.
CaptchaLen int `yaml:"captchaLen"`
}
ConfigCharacter captcha config for captcha-engine-characters.
type ConfigDigit ¶
type ConfigDigit struct {
// Height png height in pixel.
// 图像验证码的高度像素.
Height int
// Width Captcha png width in pixel.
// 图像验证码的宽度像素
Width int
// DefaultLen Default number of digits in captcha solution.
// 默认数字验证长度6.
CaptchaLen int
// MaxSkew max absolute skew factor of a single digit.
// 图像验证码的最大干扰洗漱.
MaxSkew float64
// DotCount Number of background circles.
// 图像验证码干扰圆点的数量.
DotCount int
}
ConfigDigit config for captcha-engine-digit.
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
example of HTTP server that uses the captcha package.
|
example of HTTP server that uses the captcha package. |
|
example of HTTP server that uses the captcha package.
|
example of HTTP server that uses the captcha package. |

