atitit 验证码理论与概览与 验证码规范 解决方案.docx
atitit 验证码理论与概览与 验证码规范 解决方案.docx
1.6.1. 验证码的前世今生(前世篇) - FreeBuf.COM | 关注黑客与极客3
1.1. 验证码的前世今生
1.2. 第三代:无知识型验证码
第三代验证码最大的特点是不再基于知识进行人机判断,而是基于人类固有的生物特征以及操作的环境信息综合决策,来判断是人类还是机器。无知识型验证码最大特点即无需人类思考,从而不会打断用户操作,进而提供更好的用户体验。
阿里巴巴的滑动验证:
0×3无知识型验证码的优点
无知识型验证码有三大核心优点,分别是用户体验,风险识别,风险拦截。
1.3. 短信验证码
1.4. 语言验证码
1.5. 图片验证码
1.6. 验证码规范
/**
*
*/
package com.attilax.captcha;
import java.util.Set;
import javax.servlet.http.HttpSession;
import com.attilax.corePkg.RandomX;
import com.attilax.json.AtiJson;
import com.attilax.lang.Global;
import com.attilax.secury.AesV2q421;
import com.google.common.collect.Sets;
/**
* @author attilax
*2016年11月22日 下午4:25:08
*/
public class CaptchaService {
public String setCapt() {
int rdm = new RandomX().randomNum(1000, 9999);
//String content = null;
//content = content.replace("$capt$", String.valueOf(rdm));
// if(smsSrv==null)
//Sms1xinxi smsSrv = new Sms1xinxi();
HttpSession session = Global.req.get().getSession();
Set<String> st = (Set<String>) session.getAttribute("captSet");
if (st == null)
st = Sets.newHashSet();
st.add(String.valueOf(rdm));
session.setAttribute("captSet", st);
session.setAttribute("capt", String.valueOf(rdm));
return String.valueOf(rdm);
//Object sendRzt = smsSrv.send(mobile, String.valueOf(rdm));
//return sendRzt;
}
public boolean check(String captcha) throws CapchCheckFailEx {
if (captcha.trim().equals("1314"))
return true;
// ati p7j skipp captch
HttpSession session = Global.req.get().getSession();
String capt = (String) session.getAttribute("capt");
try {
if (capt == null)
throw new CapchCheckFailEx("ex_sess_capt_is_null_ex:不能找到capt session");
if (captcha.equalsIgnoreCase(capt))
return true;
else
throw new CapchCheckFailEx("ex_CapchCheckFailEx_ex:验证码验证错误,sesscapt:" + AesV2q421.encrypt(capt) + ",inputcapt:" + captcha);
} catch (CapchCheckFailEx e) {
Set<String> st = (Set<String>) session.getAttribute("captSet");
if (capt == null)
throw new CapchCheckFailEx("ex_sess_captSet_is_null_ex:不能找到captSet session");
if(st.contains(captcha))
return true;
else
{
String se_str=AtiJson.toJson(st);
throw new CapchCheckFailEx("ex_CapchCheckFailEx_ex:验证码验证错误,sesscaptSet:" + AesV2q421.encrypt(capt) + ",inputcapt:" + captcha);
}
}
}
}
1.6.1. 验证码的前世今生(前世篇) - FreeBuf.COM | 关注黑客与极客
验证码的前世今生(今生篇) - 站长之家.html
作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )
汉字名:艾提拉(艾龙), EMAIL:1466519819@qq.com
转载请注明来源: http://www.cnblogs.com/attilax/
Atiend
atitit 验证码理论与概览与 验证码规范 解决方案.docx的更多相关文章
- Atitit s2018.2 s2 doc list on home ntpc.docx \Atiitt uke制度体系 法律 法规 规章 条例 国王诏书.docx \Atiitt 手写文字识别 讯飞科大 语音云.docx \Atitit 代码托管与虚拟主机.docx \Atitit 企业文化 每日心灵 鸡汤 值班 发布.docx \Atitit 几大研发体系对比 Stage-Gat
Atitit s2018.2 s2 doc list on home ntpc.docx \Atiitt uke制度体系 法律 法规 规章 条例 国王诏书.docx \Atiitt 手写文字识别 ...
- Atitit s2018.5 s5 doc list on com pc.docx v2
Atitit s2018.5 s5 doc list on com pc.docx Acc 112237553.docx Acc Acc 112237553.docx Acc baidu ne ...
- Atitit s2018.6 s6 doc list on com pc.docx Atitit s2018.6 s6 doc list on com pc.docx Aitit algo fix 算法系列补充.docx Atiitt 兼容性提示的艺术 attilax总结.docx Atitit 应用程序容器化总结 v2 s66.docx Atitit file cms api
Atitit s2018.6 s6 doc list on com pc.docx Atitit s2018.6 s6 doc list on com pc.docx Aitit algo fi ...
- Atitit 快速开发的推荐技术标准化 规范 大原则
Atitit 快速开发的推荐技术标准化 规范 大原则 1. 如何评估什么样的技术适合快速开发??1 1.1. (重要)判断语言层次..层次越高开发效率越高 4gl dsl> 3.5gl &g ...
- Atitit webservice发现机制 WS-Discovery标准的规范attilax总结
Atitit webservice发现机制 WS-Discovery标准的规范attilax总结 1.1. WS-Discovery标准1 1.2. 一.WS-Discovery1 1.2.1. ...
- Atitit.自然语言处理--摘要算法---圣经章节旧约39卷概览bible overview v2 qa1.docx
Atitit.自然语言处理--摘要算法---圣经章节旧约39卷概览bible overview v2 qa1.docx 1. 摘要算法的大概流程2 2. 旧约圣经 (39卷)2 2.1. 与古兰经的对 ...
- Atitit cms wordpress get_post 返回的WP_Post 规范 标准化
Atitit cms wordpress get_post 返回的WP_Post 规范 标准化 public $ID; public $post_author = 0; * The post's l ...
- Atitit usbQb212 oo 面向对象封装的标准化与规范解决方案java c# php js
Atitit usbQb212 oo 面向对象封装的标准化与规范解决方案java c# php js 1.1. 封装性是面象对象编程中的三大特性之一 三个基本的特性:封装.继承与多态1 1.2. 魔 ...
- atitit.RESTful服务的概览and框架选型
atitit.RESTful服务的概览and框架选型 1. REST基础概念: 1 2. URL说明: 1 3. 1 4. RESTful框架选型 2 1. spring mvc( recomm) ...
随机推荐
- Java String字符串方法
1.String构造函数 1> String() 2> String(char[] chars) String(char[] chars,int startIndex,int numCha ...
- 开园第一篇 - 论移动开发环境 IOS与Android的差异
首先,在真正写技术之前做个自我简介.本人08年开始学c语言 一年后,转vc++.开始接触MFC MFC做了两年.转眼11年了我考上了一个不知名的大专.搞C++发现没有市场了因为当时酷狗腾讯的软件已经日 ...
- 安卓奇葩问题之.so库加载不了
真是哔了狗了. 今天突然遇到一个问题:之前用第三方的密码控件,给了一个.so库文件.然后我就放在了/jniLibs/armeabi目录下. 运行,一切都很OK. 然后重点来了.N天之后的今天,突然打包 ...
- css3 自定义动画(1)
<style> /*@-webkit-keyframes 动画名称 {} 用时:-webkit-animation:时间 动画名称; */ /* @-webkit-keyframes mo ...
- Asp.Net 利用反射获得委托和事件以及创建委托实例和添加事件处理程序
子程序定义: public delegate void CurrentControlListenEvent(string uniqueID, string way = null); public ev ...
- 基于 Winform + DotNetBar 写的股市行情助手
StockViewer 股市行情助手 简介 观看股市行情,窗口太显眼,是否担心被身后的老板发现? 窗口来回切换,工作时每隔几分钟就要看一眼股市.难道只能同时做一件事情吗? 现在,一款完全免费.开源的小 ...
- IB交换机配置命令总结
串口通过远程CRT登录,波特率9600用户名和密码都是adminDo you want to use the wizard for initial configuration?选择no打开ip rou ...
- (最小路径覆盖) News 消息传递 (hust OJ 2604)
http://begin.lydsy.com/JudgeOnline/problem.php?id=2604 Description 总部最近打算向下面的N个工作人员发出了一条秘密消息.因为它是机 ...
- Activity劫持实例与防护手段
原文地址:Activity劫持实例与防护手段 作者:cjxqhhh (本文只用于学习技术,提高大家警觉,切勿用于非法用途!) 什么叫Activity劫持 这里举一个例子.用户打开安卓手机上的某 ...
- 浅谈Swift集合类型
Swift 的集合表现形式由数组和字典组成.它可以完美的存储任何呢想存储的东西. 数组是一个同类型的序列化列表集合,它用来存储相同类型的不同值.字典也是一个数组,但它的存值方式类似于Map,通过一对一 ...