脑洞大开的自然语言验证码

最近12306的验证码被网友们吐槽(hei)得一塌糊涂,由此我也对验证码这个东西产生了研究热情。现在的验证码有以下几种:
1、输入图片中的字母/数字/文字;
2、短信验证码(这个不一定能辨别机器人,主要是验证手机号码确实是你的);
3、语音验证码,有点击收听的,也有打电话过来叫你听的;
4、像12306(微触科技技术提供)这种的点击验证码;
5、像淘宝和极验验证的这种拖动验证;

然后我想到的验证码方式跟这些都不一样,源自于下面这句网语:
“研表究明,汉字序顺并不定一影阅响读。比如当你看完这句话后,才发这现里的字全是都乱的。”

这种打乱顺序的语句对人来说不会有阅读障碍,但对机器来说这样乱的语句非常难与词库作匹配得出正确的语义理解。下面开始讲如何利用(装逼):

1、后台随机抽取原语句,随机打乱词语及词语间的顺序,通常为邻近的字调换和隔一个字调换;

2、前端录音发送到后台,把语音转换成文字(有很多第三方平台可以做),与原语句进行对比;

3、正常人通常可以毫不费力理所当然地读出来,但机器非常艰难,现有的词库都是正常顺序,它需要对乱词进行重排,那怎么分词呢,依据什么来重排呢;

4、可以利用错别字互换,比如“竞”和“竟”等;

5、可以间中利用古诗词这种没有词组的语句来加大重组难度,比如“床前月明光,疑是上地霜”,但也很容易被模糊识别出整一首,慎用;

6、甚至可以考虑偶尔使用一些人们熟知的广告语,获取广告盈利,同样容易识别出整句,慎用。

甚至还可以加上这样的处理(图自贴吧)

最后,求大神可以尝试做一个DEMO出来,以及分析一下这种验证码的破解难度。

详细分析这种阅读现象可以看看这篇文章>>

 

posted @   北七星  阅读(3567)  评论(19编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
F**k me on Gitee
点击右上角即可分享
微信分享提示