go 包中的 captcha 实现了图像和音频 CAPTCHA 的生成和验证。
包 captcha =======================
:warning: 警告: 这种验证码可以被先进的 OCR 验证码破解算法破解。
import "GitHub.com/dchest/captcha"包 captcha 实现了图像和音频 CAPTCHA 的生成和验证。
音频表示是以 WAVE 编码 (8 kHz 无符号 8 位) 的声音,包含口语解决方案 (目前支持英语、俄语、中文和日语)。为了使计算机难以解决音频验证码,发音数字的声音具有随机速度和音高,并且还混入了随机生成的背景噪音。此包不需要外部文件或库来生成验证码表示;它是自包含的。
为了使验证码一次性使用,该包包含一个存储器,用于存储验证码 ID、解决方案和过期时间。使用过的验证码在调用 Verify 或 VerifyString 后立即从存储器中删除,而未使用的验证码(用户加载了带有验证码的页面,但没有提交表单)在预定义的过期时间后会自动收集。开发人员还可以通过实现 Store 接口并使用 SetCustomStore 来注册对象,以提供自定义存储器(例如,将验证码 ID 和解决方案存储在数据库中)。
Captchas 通过调用 New 创建,该函数返回 captcha id。 但是,它们的表示形式是通过调用 WriteImage 或 WriteAudio 函数即时创建的。 创建的表示形式不会存储在任何地方,但随后调用这些函数,使用相同的 id 将写入相同的 captcha 解决方案。 Reload 函数会为提供的 captcha 创建一个新的不同解决方案,从而允许用户在无需重新加载整个页面的情况下"重新加载" captcha。 Verify 和 VerifyString 用于验证给定的解决方案是否是针对给定 captcha id 的正确解决方案。
暂无开放 Issues,或尚未同步最近议题。