文章目录

  • 前言
  • 一、短信验证码的基本步骤
  • 二、阿里云短信验证
  • 三、导入依赖坐标
  • 四、调用API
  • 五、随机生成验证码工具类
  • 六、发送请求调用

前言

背景:目前在很多项目中都出现使用短信验证码来实现注册、登录、购买、支付、转账等功能,发短信功能几乎已经成为项目中不可或缺的技术之一。

一、短信验证码的基本步骤

  1. 选择一个合适的编程语言,例如Python、Java或PHP等。
  2. 寻找能够发送短信的API,例如Twilio、阿里云短信等。
  3. 注册并获取API的账号和认证信息(如API密钥或令牌)。
  4. 根据API文档中所述,构建发送短信验证码的请求。通常需要设置接收者手机的手机号码和短信内容等参数。
  5. 调用API发送请求,并解析API返回的响应结果,以检查短信是否发送成功。

写代码时需要特别注意短信验证码的安全性,例如防止短信轰炸、重复发送或被恶意利用等问题。

二、阿里云短信验证

1.注册阿里云账号

2.点击右上角的控制台后,搜索短信服务

3.申请签名

添加签名

4.申请模板

短信模板包含短信发送内容、场景、变量信息


添加模板:


申请后的模板详情:

申请签名和申请模板都需要人工审核的,一般1到2个工作日,其实还是挺快的。

5.设置AccessKey

相当于用户名的密码(自己记住和使用)
将鼠标移到右上角的头像,就会弹出以下对话框:

妥善保管好自己的AccessKey的密码,一旦泄漏出去,别人使用你的短信验证,耗费自己的费用。

创建自己的用户


勾选openApI调用,相当于使用编程访问
创建好后,显示AccessKeyID和AccessKey Secrect,将密码保存到自己找的到的地方,方便后续使用。
官方提示:若开通 OpenAPI 调用访问,请及时保存 AccessKey 信息,页面关闭后将无法再次获取信息。

设置权限

点击新增授权


这两个权限是如果你的AccessKey泄漏出去了,别人也只能调用你短信验证的功能,不能使用其他的功能。
如果你不使用了,或者泄漏出去了,你也可以把AccessKey禁用或者删除。

三、导入依赖坐标

<dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.6.3</version>
</dependency>
<dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-dysmsapi</artifactId><version>2.2.1</version>
</dependency>

四、调用API

可以在文档帮助中心找相应语言的SDK,可以将代码改造一下,通过Api就可以调用短信验证服务了。

/*** 短信发送工具类*/
public class SMSUtils {/*** 发送短信* @param signName 签名* @param templateCode 模板* @param phoneNumbers 手机号* @param param 参数*/
public static void sendMessage(String signName, String templateCode,String phoneNumbers,String param){DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "", "");//getProfile(地域编码,AccessKeyId,AccessKeySecret)IAcsClient client = new DefaultAcsClient(profile);SendSmsRequest request = new SendSmsRequest();request.setSysRegionId("cn-hangzhou");//设置地域编码request.setPhoneNumbers(phoneNumbers);request.setSignName(signName);request.setTemplateCode(templateCode);request.setTemplateParam("{\"code\":\""+param+"\"}");try {SendSmsResponse response = client.getAcsResponse(request);System.out.println("短信发送成功");}catch (ClientException e) {e.printStackTrace();}}
}

五、随机生成验证码工具类

/*** 随机生成验证码工具类*/
public class ValidateCodeUtils {/*** 随机生成验证码* @param length 长度为4位或者6位* @return*/public static Integer generateValidateCode(int length){Integer code =null;if(length == 4){code = new Random().nextInt(9999);//生成随机数,最大为9999if(code < 1000){code = code + 1000;//保证随机数为4位数字}}else if(length == 6){code = new Random().nextInt(999999);//生成随机数,最大为999999if(code < 100000){code = code + 100000;//保证随机数为6位数字}}else{throw new RuntimeException("只能生成4位或6位数字验证码");}return code;}/*** 随机生成指定长度字符串验证码* @param length 长度* @return*/public static String generateValidateCode4String(int length){Random rdm = new Random();String hash1 = Integer.toHexString(rdm.nextInt());String capstr = hash1.substring(0, length);return capstr;}
}

六、发送请求调用

  @PostMapping("/sendMsg")public R<String> sendMsg(@RequestBody User user, HttpSession session){//获取手机号String phone = user.getPhone();if (StringUtils.isNotEmpty(phone)){//生成随机的4位验证码String code = ValidateCodeUtils.generateValidateCode(4).toString();log.info("code={}",code);//调用阿里云提供的短信服务api完成发送短信
//            SMSUtils.sendMessage("模板签名","模板id",phone,code);//需要将生成的验证码保存到Sessionsession.setAttribute(phone,code);return R.success("手机短信验证码发送成功");}return R.error("短信发送失败");}

短信验证码的实现(阿里云)相关推荐

  1. java实现短信验证码发送(基于阿里云短信sdk)

    随着互联网的兴起,各行各业的需求都在不断的增加.随着业务的扩大,企业给用户发送短信验证码的业务,也是如火如荼.在这里,calvin给各位开发者推荐阿里云短信平台.原因有二:1.接入较简单,开发成本低 ...

  2. Springboot实现短信验证码功能(阿里云)

    最近在写毕业设计,找回密码时用到了短信验证码功能,记录如下,初学者 大神勿喷 通过阿里云实现短信验证功能,一定要申请一个阿里账号 登录阿里云控制台,通过AccessKey 开启子用户,添加一个用户组和 ...

  3. node中使用短信验证功能(阿里云为例)

    一.选择短信平台 短信平台有很多,这里我选择阿里云,详细步骤如下: 进入短信控制台,对要发送的短信格式进行配置,如果没有签名,需要申请签名后操作(注意:需要自己已有阿里云账号且实名认证成功) 按照如下 ...

  4. 项目集成短信验证功能(阿里云)详细实用教程

    阿里云手机短信验证码 第一步 登录阿里云开放平台 1.进入阿里云开放平台---->点击控制台 2.点击AccessKey管理 3.点击之后会弹出提示,选择开始使用子用户 4.新建一个用户组,然后 ...

  5. 发送短信验证码到手机(阿里大于平台) java

    使用Eclipse通过阿里大于发送短信验证码至手机 第一次撰写博客,如有不足望提出且多多见谅! 最近项目当中需要用到手机验证码功能.所以一直都在找一家比较不错的短信平台,然而现在短信平台鱼龙混杂,还真 ...

  6. Django验证码*短信验证码之2-容联云通讯短信平台(联云通讯短信平台介绍、容联云通讯Python SDK、封装发送短信单例类)

    容联云通讯短信平台介绍 容联云通讯网址:https://www.yuntongxun.com/ 容联云管理控制台 容联云创建应用 容联云通讯Python SDK https://doc.yuntong ...

  7. asp版最新的阿里云短信SDK asp版阿里云短信SDK

    阿里云提供了java,php,asp.net,python等版本,由于没有asp版本的下载.本人决定写一个这样的asp版本.不是阿里云大与短信.就是最新的阿里云短信. 主要在于签名的生成,以及相关的h ...

  8. Sms多平台短信服务商系统~完成阿里云短信服务发送可自行配置

    1.项目中引入Maven 阿里云地址 不同编程语言都有对应的SDK,你们下载自己需要的即可. pom.xml中添加maven坐标 <!--阿里云短信服务--><dependency& ...

  9. C# ASP.NET MVC 阿里云短信验证码Demo

    相信大家在开发过程中又很多使用到验证码验证的功能,今天将验证码的验证整理一下写了一个Demo 通过本篇后你能学习到: 阿里云短信服务 Drapper连接SQL Server进行增改操作 JS前端倒计时 ...

  10. java实现发送短信验证码、短信验证码防刷校验-49

    一:认证服务环境搭建 1.新建gulimail-auth-server 2.整合相关依赖 <!--引入commom依赖--><dependency><groupId> ...

最新文章

  1. Linux 搭建SVN 服务器
  2. Python入门100题 | 第011题
  3. conda command not found ubuntu
  4. 手上红白点的中药药方
  5. 【OS】经典调度算法
  6. 为什么要做短视频秒播优化
  7. 人工智能实验评价指标_人工智能实验报告.pdf
  8. python将数据保存为pdf
  9. crt计算机图形系统是什么东西,计算机图形系统功能.PPT
  10. 讲道理 | 三维高斯积分公式
  11. 【常用模块】HC-05蓝牙串口通信模块使用详解(实例:手机蓝牙控制STM32单片机)
  12. MongoDB概念集合
  13. Nginx配置文件详解
  14. python综合程序设计——做一个可视化大屏
  15. 2022数据安全法律法规标准关注文件整理
  16. Git基础之(三)——时光穿梭机
  17. 【C语言】学籍管理系统
  18. 音频格式转换(ffmpeg)
  19. 在安全创新的道路上飞奔
  20. 《隐私计算法律适用规则报告》:隐私计算如何助力数据合规

热门文章

  1. c语言循环打擂,【浩方对战平台和C语言编译器哪个好用】浩方对战平台和C语言编译器对比-ZOL下载...
  2. Python相关基础信息
  3. aop中的@within,@Pointcut,@annotation
  4. 绿城x华为:抢占未来社区新风口,共绘理想生活图鉴
  5. 让阿宅不再寂寞的聊天机器人
  6. 巴萨17次射门超米兰3倍红黑替补门神5扑保平局
  7. Steam查询最近一起玩过游戏的玩家
  8. [BUUCTF]zip伪加密
  9. [转]65个源代码网站
  10. arduino笔记8:语言运算符 + c语言运算符优先级