验证码的作用及原理

验证码的作用及原理验证码的发展历程从互联网诞生前期,互联网是没有验证码的。在论坛博客上发帖子,只要敲一下回车键按“发表”就可以了。然而,有白客就有黑客,随着计算机程序的愈发发展,黑客十分猖狂。他们编写了一种能够大量、重复编写信息的程序,伪装成人类用户,肆无忌惮的在网络上倾倒大量的、无意义的“僵尸”信息,垃圾邮件、垃圾广告、垃圾评论到处飞。更编写了模仿登录、恶意激活成功教程代码、刷票等恶意程序。这严重影响了互联网的正常运行,导致体验效果很差。以受影响最大的电子邮件的提供商为例:用户每天收到数以千计的垃圾邮件,严重影响工作效率。.

大家好,又见面了,我是你们的朋友全栈君。

验证码的发展历程

从互联网诞生前期,互联网是没有验证码的。在论坛博客上发帖子,只要敲一下回车键按“发表” 就可以了。然而,有白客就有黑客,随着计算机程序的愈发发展,黑客十分猖狂。他们编写了一种能够大量、重复编写信息的程序,伪装成人类用户,肆无忌惮的在网络上倾倒大量的、无意义的“僵尸”信息,垃圾邮件、垃圾广告、垃圾评论到处飞。更编写了模仿登录、恶意激活成功教程代码、刷票等恶意程序。这严重影响了互联网的正常运行,导致体验效果很差。 以受影响最大的电子邮件的提供商为例:用户每天收到数以千计的垃圾邮件,严重影响工作效率。为了解决这个问题,当时最有实力的邮件提供商 Yahoo(雅虎)公司负责人联系到了当时卡内基梅陇大学一位 21 岁的学生,他叫路易斯·冯·安(Luis von Ahn)首创验证码,到后来不断发展的新一代验证码,例如:12306 的选图验证码,淘宝的滑动验证码,极验验证码,短信验证码,语音验证码等。

早期的图片验证码在随着 OCR 技术的发展,已越来越不可靠,而后来提出的滑动验证码,由淘宝推出,淘宝滑动框验证深受大家好评。

验证码类别

1. Gif 动画验证码

主流验证码通过提供静态的图片,比较容易被 OCR 软件识别,有的网站提供 GIF 动态的验证码图片, 使得识别器不容易辨识哪一个图层是真正的验证码图片,可以提供清晰的图片的同时,可以更有效得防止识别器的识别,据统计,动画 gif 验证码的防垃圾注入可以达到 100%,是一个非常有效的验证码创新模式。同时 gif 动画效果可以有多达百种,也可以增加网站页面的美观效果。

2.手机短信验证码

手机验证码是通过发送验证码到手机,大型网站尤其是购物网站,都提供有手机短信验证码功能,可以比较准确和安全地保证购物的安全性,验证用户的正确性,是最有效的验证码系统。某些验证码接入商提供手机短信验证码服务,各网站通过接口发送请求到接入商的服务器,服务器发送随机数字或字母到手机中,由接入商的服务器统一做验证码的验证。

3.手机语音验证码

您是否遇到过您的网站用户或会员经常因为各种原因收不到网站的验证码,或新用户注册收不到短信没有耐心就直接放弃了您的网站,或因为验证码的问题体验不佳流失掉老客户和潜在新客户呢? 现在,语音验证码的出现把这些问题一下统统解决了,您再也不用为验证码的问题而烦恼了。只要用户的手机或座机能正常接听电话,就一定能收到语音验证码,验证码实现自动语音播报,同时短信也能同时发送到用户手机,实现双保险确保万无一失。语音验证码如果有拨通失败的,系统还能自动重播,确保不漏掉任何一个,从根本上解决您的网站用户收不到验证码的问题。

4.视频验证码

视频验证码是验证码中的新秀,视频验证码中随机数字、字母和中文组合而成的验证码动态嵌入到 MP4,flv 等格式的视频中,增大了激活成功教程难度。验证码视频动态变换,随机响应,可以有效防范字典攻击、穷举攻击等攻击行为。视频中的验证码字母、数字组合,字体的形状、大小,速度的快慢,显示效果和轨迹的动态变换,增加了恶意抓屏激活成功教程的难度。其安全度远高于普通的验证码,而且这种验证码形式使用户不会感到枯燥,由于其提高了机器识别的难度从而可以降低用户识别的难度,使得用户更容易辨认。

5.滑动验证码

滑动验证码产生于最近两三年,由于 12306 的选图验证码实现太过复杂,成本太高,不可大力推广,而且一定程度上加大了买票的力度,饱受非议。因此淘宝推出了滑动验证码以及后来的极验验证码。在极限验证码和滑动验证码,前面有一篇文章介绍相关的 Java 接口整合教程(可参考,JAVA 整合极验滑动验证码、JAVA 接入极验滑动验证码教程)

6.行为式验证码

行为式验证码在国外网站应用得比较多,尤其是 google 类网站,其分为拖动式和点触式(国内首创是 TOUCLICK)两种方式,行为式验证的核心思想是利用用户的“行为特征”来做验证安全判别。整个验证框架采用高效的“行为沙盒”主动框架, 这个框架会引导用户在“行为沙盒”内产生特定的行为数据,利用“多重复合行为判别”算法从特指、视觉、思考等多重行为信息中辨识出生物个体的特征, 从而准确快速的提供验证结果。

滑动验证码实现原理 滑动验证码在很多网站逐步流行起来,一方面对用户体验来说,比较新颖,操作简单,另一方面相对图形验证码来说,安全性并没有很大的降低。当然到目前为止,没有绝对的安全验证,只是不断增加攻击者的绕过成本。

总的来说:滑动验证码是根据用户在滑动滑块的响应时间,拖拽速度,时间,位置,轨迹,重试次数等来评估风险。

验证码的原理

首先了解到的是验证码是由服务端产生,以图片的形式展示在客户端或页面,用户端的用户根据图片识别验证码,并进行注册提交,提交的验证码在服务层进行校验,如果校验成功,则用户注册成功并登陆,如果失败,请用户重新注册。然后想一想这些图片是怎样生成的,验证码如何设计的,验证码为什么要设计成图片的格式,而且人们肉眼都难以识别其中的验证码。

图片是在服务端随机产生,这些图片可以通过设置规定他们的高度和宽度,然后再图片上绘制一些干扰线,当然,干扰线的数量也是可以控制的,不同验证码插件或者不同的网站验证码图片的干扰程度不同,一般来说干扰程度越高,防止恶意攻击的效果会更好一些。但是用户识别起来也会增加难度,制造干扰线也是防止别人编写程序识别图片中的验证码或者通过某种机器提取图片中的验证码,来进行恶意注册或搞破坏。如果人眼都不能一眼轻易识别图片中的验证码,相信机器的识别度在比人眼低的情况下,不容易获取图片中的验证码。图片上的验证码可以是数组和大小写字母的组合,也可以是汉字的形式,这些字符都是随机产生并进行拼接的。实现验证功能的图片合成之后,会转换为一串字符串,然后以字节数组输出流的形式传送到前端,并显示在页面的相应位置。不是,该验证码产生的同时,会伴随产生它的唯一标志的id,过期时间,然后这些数据一般会一同封装到服务端的缓存中,到用户输入验证码并返回时,在服务端进行校验,并把校验的结果返回到前端界面。这些是验证码的大致原理。

原文链接:https://blog.csdn.net/IBLiplus/article/details/81987341
原文链接:https://juejin.cn/post/6893321446698221575

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/159129.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • IOS 地图定位,标记位置,获取经纬度,MKMapView的使用「建议收藏」

    IOS 地图定位,标记位置,获取经纬度,MKMapView的使用「建议收藏」IOS地图定位,标注地图,获取经纬度:一、使用MKMapView定位二、在地图上通过经纬度标注(大头针)项目源码:http://download.csdn.net/detail/swingpyzf/6569785最终效果图:打开应用程序会自动定位并且放大到自己的位置,然后在我的位置上显示自己的经纬度,通过填写经纬度可以放置大头针标

  • Python3对股票数据进行分析

    Python3对股票数据进行分析目录一、量化交易概述1、量化交易(投资方法)2、算法交易(自动交易、黑盒交易或机器交易)3、量化策略4、量化选股5、股票回测二、股票数据三、股票数据分析1、导入股票时间序列数据2、绘制股票成交量的时间序列图3、绘制股票收盘价和成交量的时间序列图3、绘制K线图(蜡烛图)(1)K线图理论(2)K线图绘制4、股票指标相关性分析(1)相关关系…

  • 汇编语言指令大全(详细)「建议收藏」

    汇编语言指令大全(详细)「建议收藏」汇编语言指令大全8080汇编手册数据传输指令──────────────────────────────它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据。1。通用数据传送指令。MOV传送字或字节。MOVSX先符号扩展,再传送。MOVZX先零扩展,再传送。PUSH把字压入堆栈。POP把字弹出堆栈。PUSHA把AX,CX,DX,BX,SP,BP,SI,DI依次

  • 【GCC编译】运行编译后的程序报错 error while loading shared libraries: lib*.so: cannot open shared object file[通俗易懂]

    【GCC编译】运行编译后的程序报错 error while loading shared libraries: lib*.so: cannot open shared object file[通俗易懂]运行编译后的程序报错errorwhileloadingsharedlibraries:lib*.so:cannotopensharedobjectfile:Nosuchfileordirectory   运行编译后的程序报错errorwhileloadingsharedlibraries:lib*.s…

  • gitee pycharm_怎么把git上放到pycharm

    gitee pycharm_怎么把git上放到pycharm好久没有使用git,都忘记git的操作流程了,只能强制回忆一下:今天接到领导通知,要把我这边写的代码提交到远程仓库,然后就想,他那边仓库里的代码源码都是我提供的,我本地在pycharm中也是添加了git管理的,所以就想直接我这边的仓库代码直接push到远程仓库上去,先pull,然后在push就行了,结果搞了半天,一直提示我这边的版本在远程仓库之前的版本:hint:Updateswererejectedbecausethetipofyourcurrentbranchisbehi

  • cameralink转hdmi_输入电阻和输出电阻

    cameralink转hdmi_输入电阻和输出电阻FMC202是北京青翼科技的一款基于FMC接口标准的1路CameraLinkFull模式(或者2路CameraLinkBase模式)采集、1路HDMI(DVI)视频输出的子卡模块,该模块具有2个CameraLink端口(SDR,26PIN),可通过硬件配置成1路Full输入或者2路Base模式输入,CameraLink接口支持80BitDeca模式(即FullPlus模式)。该模块支持1

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号