atitit 短信验证码的源码实现 .docx
atitit 短信验证码的源码实现 .docx
参考 Atitit usrQBM1603短信验证码规范
主要方法
Line 27: public class SmsCaptchaService extends CaptchaService {
Line 36: public static void main(String[] args) {
Line 49: public static SmsCaptchaService buildAsYuntonsyon() {
Line 57: public static SmsCaptchaService buildAsSms1xinxi() {
Line 65: public Object send(String mobile) {
Line 86: public Object send(String mobile, String content) {
Line 103: public boolean check(String captcha) throws CapchCheckFailEx {
源码实现
package com.attilax.captcha;
import java.util.Set;
import javax.servlet.http.HttpSession;
import com.attilax.captcha.CaptchaService;
import com.attilax.corePkg.RandomX;
import com.attilax.json.AtiJson;
import com.attilax.lang.Global;
import com.attilax.net.requestImp;
import com.attilax.secury.AesV2q421;
import com.attilax.sms.Sms1xinxi;
import com.attilax.sms.SmsService;
import com.attilax.sms.SmsServiceYyuntongxunImp;
import com.attilax.web.sessionImp;
import com.csmy.my.center.util.RequestUtil;
import com.google.common.collect.Sets;
import com.google.inject.Inject;
/**
* com.attilax.sms.SmsCaptchaService
*
* @author Administrator
*
*/
public class SmsCaptchaService extends CaptchaService {
@Inject
CaptchaService captSvs;
@Inject
SmsService smsSrv;
// @Inject
RandomX rdmx = new RandomX();
public static void main(String[] args) {
// System.out.println( new SmsCaptchaService().send("18573344543",
// "xxcontent"));
requestImp ri=new requestImp();
sessionImp si=new sessionImp();
ri.setSession(si);
Global.req.set(ri);
SmsCaptchaService SmsCaptchaService1 = SmsCaptchaService.buildAsYuntonsyon();
//System.out.println(SmsCaptchaService1.send("18867311166" ));;
SmsCaptchaService1.send("18573344543" );
}
public static SmsCaptchaService buildAsYuntonsyon() {
SmsService smsS = new SmsServiceYyuntongxunImp();
SmsCaptchaService svs = new SmsCaptchaService();
svs.smsSrv = smsS;
return svs;
}
public static SmsCaptchaService buildAsSms1xinxi() {
SmsService smsS = new Sms1xinxi();
SmsCaptchaService svs = new SmsCaptchaService();
svs.smsSrv = smsS;
return svs;
}
public Object send(String mobile) {
String Capt= super.setCapt();
Object sendRzt = smsSrv.send(mobile, String.valueOf(Capt));
return sendRzt;
}
public Object send(String mobile, String content) {
int rdm = new RandomX().randomNum(1000, 9999);
content = content.replace("$capt$", String.valueOf(rdm));
// if(smsSrv==null)
//Sms1xinxi smsSrv = new Sms1xinxi();
Object send = smsSrv.send(mobile, content);
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 send;
}
}
作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )
汉字名:艾提拉(艾龙), EMAIL:1466519819@qq.com
转载请注明来源: http://www.cnblogs.com/attilax/
Atiend
atitit 短信验证码的源码实现 .docx的更多相关文章
- atitit.短信 验证码 破解 v3 p34 识别 绕过 系统方案规划----业务相关方案 手机验证码 .doc
atitit.短信 验证码 破解 v3 p34 识别 绕过 系统方案规划----业务相关方案 手机验证码 .doc 1. 手机短信验证码 vs 图片验证码 安全性(破解成本)确实要高一些1 1 ...
- 使用定时器限制点击按钮发送短信(附源码)--JavaScript小案例
不说多哈,有注释哦,直接贴代码了哈,有疑问请追评呢…… 1.禁用按钮: this.disabled = "disabled"(this指按钮)或: this.disabled = ...
- Android之短信验证码
我们今天所使用的方案仅仅是android手机设备集成短信验证码功能的方案之中的一个. 我们所採用的方案是使用聚合数据的短信验证sdk. 程序的界面例如以下所看到的: 实现步骤: 1.到聚合数据官网上申 ...
- Atitit. 破解 拦截 绕过 网站 手机 短信 验证码 方式 v2 attilax 总结
Atitit. 破解 拦截 绕过 网站 手机 短信 验证码 方式 v2 attilax 总结 1. 验证码的前世今生11.1. 第一代验证码 图片验证码11.2. 第二代验证码 用户操作 ,比如 ...
- atitit.破解 拦截 绕过 网站 手机 短信 验证码 之自动获取手机短信方式 attilax 总结
atitit.破解 拦截 绕过 网站 手机 短信 验证码 之自动获取手机短信方式 attilax 总结 1. 自动获取手机短信方式的原理 1 2. 调用api 1 3. ----核心代码 2 4. ...
- Atitit usrQBM1603短信验证码规范
Atitit usrQBM1603短信验证码规范 短信验证码扩展至短信服务和验证码服务1 主要方法1 参考模板1 短信验证码扩展至短信服务和验证码服务 主要方法 Line 27: public cla ...
- atitit 短信接口规范与短信解决方案.docx
atitit 短信接口规范与短信解决方案.docx 1.1. 国内比较著名的短信提供商1 1.2. 短信接口规范1 1.3. 短信sdk构成1 1.4. 短信的实现1 1.5. SmsServiceY ...
- SpringBoot + Spring Security 学习笔记(五)实现短信验证码+登录功能
在 Spring Security 中基于表单的认证模式,默认就是密码帐号登录认证,那么对于短信验证码+登录的方式,Spring Security 没有现成的接口可以使用,所以需要自己的封装一个类似的 ...
- Unity利用SMSSDK实现短信验证码(附代码)
最近一直在研究如何给app更多实用性的功能,在app进行登录或者注册时,为了方便用户更加快捷的完成登录功能,所以就决定采用短信验证码的方式进行验证登录.在学习的过程中,先使用了Mob的短信服务进行短信 ...
随机推荐
- spring aop一些名词的理解
最近想深入了解spring,已经使用spring一段时间,但是对spring的理解一直很肤浅,先把几个常见的名词理解一下. 比如一个ssh架构的电商系统上面有用户模块,商品模块,订单模块,支付模块等, ...
- (转)java中的进程与线程
(转自地址http://www.ibm.com/developerworks/cn/java/j-lo-processthread/) Java 进程的建立方法 在 JDK 中,与进程有直接关系的类为 ...
- AutoMapper扩展
扩展类:AutoMapExtention using System; using System.Collections.Generic; using System.Linq.Expressions; ...
- member template
1.当且仅当类模板的参数相同时,你才能对类实体对象相互赋值,即将一个实体对象整体赋值给另外一个实体对象.不能将一种类型的实体对象赋值给另外一种实体对象.如: Stack<int> intS ...
- C程序员学bash shell容易掉坑的注意点(未完待续)
shell解释器很娇气,有一点点不合乎规范的编码风格都会让脚本歇菜. 1. 空格该有还是该没有要看情况.该有的时候不能没有!该没有的时候不能有! 变量赋值的等号两边不能有空格. 2. 在shell中是 ...
- Python成长笔记 - 基础篇 (十)
本节内容 进程.与线程区别 python GIL全局解释器锁 线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件 queue队列 生产者消费者模型 Queu ...
- C# .NET 隐藏窗体
隐藏窗体,打开窗体后如果想让它隐藏,然后再显示出来,就判断是不是NULL或者有没有关闭,不然就NEW一个出来,否则就SHOW出来. 当然如果有隐藏的话退出的时候最好用Application.Exit( ...
- php中explode与split的区别介绍
php中explode与split的区别介绍 作者: 字体:[增加 减小] 类型:转载 今天在使用split时遇到一些问题.还是对函数理解不深刻,特写出来做个记 首先来看下两个方法的定义: 函数原型: ...
- Linux内核--网络栈实现分析(四)--网络层之IP协议(上)
本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7514017 更多请看专栏,地址 ...
- maven配置阿里云镜像
编辑%maven_home%/conf/settings.xml文件,添加 <mirror> <id>aliyun-maven</id> <mirrorOf& ...