🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Sign inDemoInstall
Socket

github.com/golang-module/base64Captcha

Package Overview
Dependencies
Alerts
File Explorer
Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github.com/golang-module/base64Captcha

v1.3.9
Source
Go
Version published
Created
Source

Captcha

Carbon Release Go Test Go Report Card Carbon Doc License

项目简介

一个轻量级、语义化、对开发者友好的 golang 验证码库,支持任何 Unicode 字符,可以轻松定制以支持语音、数学、中文、韩语、日语等

Fork 于 mojotv/base64Captcha,由于原仓库不再更新和维护,所以拉取了一个分支,在此对原作者表示感谢。

仓库地址

github.com/golang-module/base64Captcha

安装使用

go version >= 1.16
go get -u github.com/golang-module/base64Captcha

用法示例

import "github.com/golang-module/base64Captcha/store

// 使用内存存储(默认)
base64Store := store.DefaultMemoryStore

// 使用 sync map 存储
base64Store := store.DefaultSyncMapStore

驱动配置

自定义配置时可以只定义需要修改的配置项,其他配置项将使用默认配置项

1、配置纯数字验证码
// 使用默认配置
base64Driver := driver.DefaultDriverDigit

// 使用自定义配置
base64Driver := driver.NewDriverDigit(driver.DriverDigit{
    Width:    240, // 宽度
    Height:   60,  // 高度
    Length:   6, // 长度
    NoiseCount: 2, // 点数量
    Source: "0123456789",
    Fonts: []string{"wqy-microhei.ttc"}, // 显示字体
    BgColor: &color.RGBA{R: 0, G: 0, B: 0, A: 0}, // 背景颜色
})

digit

2、配置纯字母验证码
// 使用默认配置
base64Driver := driver.DefaultDriverLetter

// 使用自定义配置
base64Driver := driver.NewDriverLetter(driver.DriverLetter{
    Width:    240, // 宽度
    Height:   60,  // 高度
    Length:   6,   // 长度
    NoiseCount: 2, // 点数量
    Source: "ABCDEFGHJKMNOQRSTUVXYZabcdefghjkmnoqrstuvxyz",
    Fonts: []string{"wqy-microhei.ttc"}, // 显示字体
    BgColor: &color.RGBA{R: 0, G: 0, B: 0, A: 0}, // 背景颜色
})

letter

2、配置数学运算验证码
// 使用默认配置
base64Driver := driver.DefaultDriverMath

// 使用自定义配置
base64Driver := driver.NewDriverMath(driver.DriverMath{
    Width:           240, // 宽度
    Height:          60,  // 高度
    NoiseCount:      2, // 点数量
    ShowLineOptions: 0, // 显示线条 
    Fonts:           []string{"wqy-microhei.ttc"}, // 显示字体
    BgColor:         &color.RGBA{R: 0, G: 0, B: 0, A: 0}, // 背景颜色
})

math

3、配置字符串验证码(包含数字、大小写字母)
// 使用默认配置
base64Driver := driver.DefaultDriverString

// 使用自定义配置
base64Driver := driver.NewDriverString(driver.DriverString{
    Width:           240, // 宽度
    Height:          60,  // 高度
    Length:          6, // 长度
    NoiseCount:      2, // 点数量
    ShowLineOptions: 0,                                              // 显示线条
    Source:          "ABCDEFGHJKMNOQRSTUVXYZabcdefghjkmnoqrstuvxyz", // 字符源
    Fonts:           []string{"wqy-microhei.ttc"}, // 显示字体
    BgColor:         &color.RGBA{R: 0, G: 0, B: 0, A: 0}, // 背景颜色
})

string

4、配置汉字验证码
// 使用默认配置
base64Driver := driver.DefaultDriverChinese

// 使用自定义配置
base64Driver := driver.NewDriverChinese(driver.DriverChinese{
    Width:           240, // 宽度
    Height:          60,  // 高度
    Length:          6, // 长度
    NoiseCount:      2, // 点数量
    ShowLineOptions: 0,                                                                                                                                      // 显示线条
    Source:          "设想,你在,处理,消费者,的音,频输,出音,频可,能无,论什,么都,没有,任何,输出,或者,它可,能是,单声道,立体声,或是,环绕立,体声的,,不想要,的值", // 字符源
    Fonts:           []string{"wqy-microhei.ttc"}, // 显示字体
    BgColor:         &color.RGBA{R: 125, G: 125, B: 0, A: 118}, // 背景颜色
})

chinese

5、配置语音验证码
// 使用默认配置
base64Driver := driver.DefaultDriverAudio

// 使用自定义配置
base64Driver := driver.NewDriverAudio(driver.DriverAudio{
    Length:   6, // 长度
    Language: "en", // 语言,目前支持:en、zh、ja、ru、de
})

audio

生成验证码
captcha := base64Captcha.NewCaptcha(base64Driver, base64Store)

// 生成验证码
id, src, answer, err = captcha.Generate()

// 验证验证码
captcha.Verify(id, answer, true)

FAQs

Package last updated on 18 Jan 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts