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. |