atitit 短信验证码的源码实现  .docx

参考 Atitit usrQBM1603短信验证码规范1

主要方法1

源码实现1

参考 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的更多相关文章

  1. atitit.短信 验证码  破解  v3 p34  识别 绕过 系统方案规划----业务相关方案 手机验证码  .doc

    atitit.短信 验证码  破解  v3 p34  识别 绕过 系统方案规划----业务相关方案 手机验证码  .doc 1. 手机短信验证码 vs 图片验证码 安全性(破解成本)确实要高一些1 1 ...

  2. 使用定时器限制点击按钮发送短信(附源码)--JavaScript小案例

    不说多哈,有注释哦,直接贴代码了哈,有疑问请追评呢…… 1.禁用按钮: this.disabled = "disabled"(this指按钮)或: this.disabled = ...

  3. Android之短信验证码

    我们今天所使用的方案仅仅是android手机设备集成短信验证码功能的方案之中的一个. 我们所採用的方案是使用聚合数据的短信验证sdk. 程序的界面例如以下所看到的: 实现步骤: 1.到聚合数据官网上申 ...

  4. Atitit. 破解  拦截 绕过 网站 手机 短信 验证码  方式 v2 attilax 总结

    Atitit. 破解  拦截 绕过 网站 手机 短信 验证码  方式 v2 attilax 总结 1. 验证码的前世今生11.1. 第一代验证码 图片验证码11.2. 第二代验证码  用户操作 ,比如 ...

  5. atitit.破解 拦截 绕过 网站 手机 短信 验证码 之自动获取手机短信方式 attilax 总结

    atitit.破解  拦截 绕过 网站 手机 短信 验证码 之自动获取手机短信方式 attilax 总结 1. 自动获取手机短信方式的原理 1 2. 调用api 1 3. ----核心代码 2 4.  ...

  6. Atitit usrQBM1603短信验证码规范

    Atitit usrQBM1603短信验证码规范 短信验证码扩展至短信服务和验证码服务1 主要方法1 参考模板1 短信验证码扩展至短信服务和验证码服务 主要方法 Line 27: public cla ...

  7. atitit 短信接口规范与短信解决方案.docx

    atitit 短信接口规范与短信解决方案.docx 1.1. 国内比较著名的短信提供商1 1.2. 短信接口规范1 1.3. 短信sdk构成1 1.4. 短信的实现1 1.5. SmsServiceY ...

  8. SpringBoot + Spring Security 学习笔记(五)实现短信验证码+登录功能

    在 Spring Security 中基于表单的认证模式,默认就是密码帐号登录认证,那么对于短信验证码+登录的方式,Spring Security 没有现成的接口可以使用,所以需要自己的封装一个类似的 ...

  9. Unity利用SMSSDK实现短信验证码(附代码)

    最近一直在研究如何给app更多实用性的功能,在app进行登录或者注册时,为了方便用户更加快捷的完成登录功能,所以就决定采用短信验证码的方式进行验证登录.在学习的过程中,先使用了Mob的短信服务进行短信 ...

随机推荐

  1. spring aop一些名词的理解

    最近想深入了解spring,已经使用spring一段时间,但是对spring的理解一直很肤浅,先把几个常见的名词理解一下. 比如一个ssh架构的电商系统上面有用户模块,商品模块,订单模块,支付模块等, ...

  2. (转)java中的进程与线程

    (转自地址http://www.ibm.com/developerworks/cn/java/j-lo-processthread/) Java 进程的建立方法 在 JDK 中,与进程有直接关系的类为 ...

  3. AutoMapper扩展

    扩展类:AutoMapExtention using System; using System.Collections.Generic; using System.Linq.Expressions; ...

  4. member template

    1.当且仅当类模板的参数相同时,你才能对类实体对象相互赋值,即将一个实体对象整体赋值给另外一个实体对象.不能将一种类型的实体对象赋值给另外一种实体对象.如: Stack<int> intS ...

  5. C程序员学bash shell容易掉坑的注意点(未完待续)

    shell解释器很娇气,有一点点不合乎规范的编码风格都会让脚本歇菜. 1. 空格该有还是该没有要看情况.该有的时候不能没有!该没有的时候不能有! 变量赋值的等号两边不能有空格. 2. 在shell中是 ...

  6. Python成长笔记 - 基础篇 (十)

    本节内容 进程.与线程区别 python GIL全局解释器锁 线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件 queue队列 生产者消费者模型 Queu ...

  7. C# .NET 隐藏窗体

    隐藏窗体,打开窗体后如果想让它隐藏,然后再显示出来,就判断是不是NULL或者有没有关闭,不然就NEW一个出来,否则就SHOW出来. 当然如果有隐藏的话退出的时候最好用Application.Exit( ...

  8. php中explode与split的区别介绍

    php中explode与split的区别介绍 作者: 字体:[增加 减小] 类型:转载 今天在使用split时遇到一些问题.还是对函数理解不深刻,特写出来做个记 首先来看下两个方法的定义: 函数原型: ...

  9. Linux内核--网络栈实现分析(四)--网络层之IP协议(上)

    本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7514017 更多请看专栏,地址 ...

  10. maven配置阿里云镜像

    编辑%maven_home%/conf/settings.xml文件,添加 <mirror> <id>aliyun-maven</id> <mirrorOf& ...