该项目不能用于任何盗刷行为,仅为证实svg-captcha生成的验证码是可以很轻易被破解的, 比位图的验证码更容易被破解。
如果实在需要使用svg-captcha,请一定准备多套字体,并且经常更换,英文字体还是很容易找到的。
ps. 我已经给svg-captcha提了issue了,看他们的重视程度,应该会修复这个问题。
issue 已经有回复了: produck/svg-captcha#45 3.0会完全修复
特点:
- 识别正确率100%
- 每次识别耗时最高都在1ms以内
- 零依赖
缺点:
- 仅支持 svg-captcha 默认的字体,如果用了自定义字体,需要重新生成字典
- 目前是针对 svg-captcha 1.4.0 及以下版本做的,不排除他们更新后此方法无法识别
Even though you can write a program that convert svg to png, svg captcha has done its job —— make captcha recognition harder
所以SVG验证码可能比的图片普通验证码要更难识别,因为你必须先做SVG到其它格式的转化。
以上引用了svg-captcha文档的一句话,而我并没有把SVG转为其它格式,却做到了更快的验证码识别,并且识别率100%。
svg-captcha: https://www.npmjs.com/package/svg-captcha
const { recognize } = require('./index')
const text = recognize(csvText) // 只需传入由svg-captcha生成的svg字符串
console.log(text)
# 以下命令将不停地生成svg-captcha验证码,然后识别,
# 最后对比识别出来的验证码与svg-captcha返回的是否一致,
# 同时打印结果。当需要停止测试时,按下ctrl+c即可
npm install
node ./test.js
# 已分析83200次,识别成功数:83200 / 83200 (100.00%),总耗时53 second 530 ms,平均每次耗时0.64 ms