当前位置: 首页 > news >正文

短信验证码实现(阿里云)

如果实现短信验证,上教程,这里用的阿里云短信服务

短信服务 (aliyun.com)

进入短信服务后开通就行,可以体验100条免费,刚好测试用

这里由自定义和专用,测试的话就选择专用吧,自定义要审核,

 SendSms_短信服务_API调试-阿里云OpenAPI开发者门户 (aliyun.com)

这里是方法api,有对应的教程 

验证码模板示例

应用场景模板示例
登录/验证
  • 您的验证码${code},该验证码5分钟内有效,请勿泄漏于他人!
  • 您的验证码:${code},您正进行身份验证,打死不告诉别人!
  • 验证码为:${code},您正在登录,若非本人操作,请勿泄露。
注册
  • 您正在申请手机注册,验证码为:${code},5分钟内有效!
  • 尊敬的用户,您的注册会员动态密码为:${code},请勿泄漏于他人!
  • 您的注册码:${code},如非本人操作,请忽略本短信!
  • 您的校验码:${code},您正在注册成为会员,感谢您的支持!
  • 验证码为:${code},您正在注册成为平台会员,感谢您的支持!
重置密码您的动态码为:${code},您正在进行密码重置操作,如非本人操作,请忽略本短信!
变更信息验证码为:${code},您正在尝试变更重要信息,请妥善保管账户信息。

废话就不说了!

    <!-- 短信依赖 --><dependency><groupId>com.aliyun</groupId><artifactId>dysmsapi20170525</artifactId><version>2.0.24</version></dependency>
package com.xiaoyu;import com.aliyun.dysmsapi20170525.Client;
import com.aliyun.dysmsapi20170525.models.SendSmsRequest;
import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
import com.aliyun.teaopenapi.models.Config;import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class SendSms {public static void main(String[] args) throws Exception {String phoneNumber = "你的手机号";if (isValidPhoneNumber(phoneNumber)) {Config config = new Config();config.setType("access_key"); // 使用AK初始化凭据客户端,还有其他的STS Token、AK及RamRoleArn、ECS实例RAM角色、OIDCRoleArn、URI凭据、Bearer Token(目前只有云呼叫中心CCC这款产品支持Bearer Token的凭据初始化方式)config.setAccessKeyId("你的AccessKey ID"); // AccessKey IDconfig.setAccessKeySecret("你的AccessKey Secret"); // AccessKey Secretconfig.endpoint = "dysmsapi.aliyuncs.com";Client client = new Client(config);SendSmsRequest request = new SendSmsRequest();request.setPhoneNumbers(phoneNumber).setSignName("阿里云短信测试")//短信签名.setTemplateCode("SMS_154950909")//短信模板.setTemplateParam("{\"code\":" + generateVerificationCode() + "}");SendSmsResponse response = client.sendSms(request);Integer statusCode = response.getStatusCode();System.out.println("状态码:" + statusCode); //打印状态码,200成功} else {System.out.println("手机号不合法");}}//生成6位数验证码private static String generateVerificationCode() {Random random = new Random();int code = 100000 + random.nextInt(900000); // 生成100000到999999之间的随机数return String.valueOf(code);}//验证手机号private static boolean isValidPhoneNumber(String phoneNumber) {// 定义中国大陆手机号的正则表达式String regex = "^1[3456789]\\d{9}$";// 编译正则表达式Pattern pattern = Pattern.compile(regex);// 创建 Matcher 对象Matcher matcher = pattern.matcher(phoneNumber);// 进行匹配并返回结果return matcher.matches();}
}

#这里强调一下,阿里云这里建议使用STS Token比较安全,我这里使用ak初始化非常不安全,不推荐在项目里面这样写

相关文章:

短信验证码实现(阿里云)

如果实现短信验证&#xff0c;上教程&#xff0c;这里用的阿里云短信服务 短信服务 (aliyun.com) 进入短信服务后开通就行&#xff0c;可以体验100条免费&#xff0c;刚好测试用 这里由自定义和专用&#xff0c;测试的话就选择专用吧&#xff0c;自定义要审核&#xff0c; Se…...

如何对element弹窗进行二次封装

方式一使用$refs 个人比较喜欢用这种的 通过$refs打开的同时 还能给弹窗组件传参 一些框架使用的也是这种方式 父组件 <template><div><el-button type"text" click"handleDialogOpen">打开嵌套表单的 Dialog</el-button><Dia…...

【微服务专题】手写模拟SpringBoot

目录 前言阅读对象阅读导航前置知识笔记正文一、工程项目准备1.1 新建项目1.1 pom.xml1.2 业务模拟 二、模拟SpringBoot启动&#xff1a;好戏开场2.1 启动配置类2.1.1 shen-base-springboot新增2.1.2 shen-example客户端新增启动类 三、run方法的实现3.1 步骤一&#xff1a;启动…...

七个优秀微服务跟踪工具

随着微服务架构复杂性的增加&#xff0c;在问题出现时确定问题的根本原因变得更具挑战性。日志和指标为我们提供了有用的信息&#xff0c;但并不能提供系统的完整概况。这就是跟踪的用武之地。通过跟踪&#xff0c;开发人员可以监控微服务之间的请求进度&#xff0c;从而使他们…...

redis 问题解决 1

1.1 常见考点 1、Redis 为何这么快? Redis 是一款基于内存的数据结构存储系统,它之所以能够提供非常快的读写性能,主要是因为以下几个方面的原因: 基于内存存储:Redis 所有的数据都存储在内存中,而内存的访问速度比磁盘要快得多。因此,Redis 可以提供非常快的读写性能…...

odoo16前端框架源码阅读——启动、菜单、动作

odoo16前端框架源码阅读——启动、菜单、动作 目录&#xff1a;addons/web/static/src 1、main.js odoo实际上是一个单页应用&#xff0c;从名字看&#xff0c;这是前端的入口文件&#xff0c;文件内容也很简单。 /** odoo-module **/import { startWebClient } from "…...

C/C++(a/b)*c的值 2021年6月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录 C/C(a/b)*c的值 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C/C(a/b)*c的值 2021年6月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 给定整数a、b、c&#xff0c;计算(a / b)*c的值&…...

CIFAR-100数据集的加载和预处理教程

一、CIFAR-100数据集介绍 CIFAR-100&#xff08;Canadian Institute for Advanced Research - 100 classes&#xff09;是一个经典的图像分类数据集&#xff0c;用于计算机视觉领域的研究和算法测试。它是CIFAR-10数据集的扩展版本&#xff0c;包含了更多的类别&#xff0c;用…...

C#,数值计算——函数计算,Eulsum的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { public class Eulsum { private double[] wksp { get; set; } private int n { get; set; } private int ncv { get; set; } public bool cnvgd { get; set; } pri…...

ChatGLM3 langchain_demo 代码解析

ChatGLM3 langchain_demo 代码解析 0. 背景1. 项目代码结构2. 代码解析2-1. utils.py2-2. ChatGLM3.py2-3. Tool/Calculator.py2-4. Tool/Weather.py2-5. main.py 0. 背景 学习 ChatGLM3 的项目内容&#xff0c;过程中使用 AI 代码工具&#xff0c;对代码进行解释&#xff0c;…...

asp.net学院网上报销系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

一、源码特点 asp.net学院网上报销系统是一套完善的web设计管理系统&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为vs2010&#xff0c;数据库为sqlserver2008&#xff0c;使用c#语言 开发 asp.net学院网上报销系统 应用技术…...

ElasticSearch知识点

什么是ElasticSearch ElasticSearch: 智能搜索&#xff0c;分布式的搜索引擎&#xff0c;是ELK的一个非常完善的产品&#xff0c;ELK代表的是: E就是ElasticSearch&#xff0c;L就是Logstach&#xff0c;K就是kibana Elasticsearch是一个建立在全文搜索引擎 Apache Lucene基础…...

STM32 GPIO

STM32 GPIO GPIO简介 GPIO&#xff08;General Purpose Input Output&#xff09;通用输入输出口&#xff0c;也就是我们俗称的IO口 根据使用场景&#xff0c;可配置为8种输入输出模式 引脚电平&#xff1a;0V~3.3V&#xff0c;部分引脚可容忍5V 数据0就是低电平&#xff0c…...

Electron 开发页面应用

简介 Electron集成了包括chromium&#xff08;理解为具备chrom浏览器的工具&#xff09;&#xff0c;nodejs&#xff0c;native apis chromium&#xff1a;支持最新特性的浏览器。 nodejs&#xff1a;js运行时&#xff0c;可实现文件读写等。 native apis &#xff1a;提供…...

CSDN写博文的128天

起因 为什么要写博文&#xff1f; 写博文是因为当我还是编程小白时&#xff0c;我那会啥也不懂&#xff0c;不懂函数调用&#xff0c;不懂指针&#xff0c;更不懂结构体&#xff0c;别更说Linux&#xff0c;平时不会也没有可以问的人&#xff0c;也幸好有CSDN&#xff0c;遇到…...

Linux学习教程(第二章 Linux系统安装)1

第二章 Linux系统安装 学习 Linux&#xff0c;首先要学会搭建 Linux 系统环境&#xff0c;也就是学会在你的电脑上安装 Linux 系统。 很多初学者对 Linux 望而生畏&#xff0c;多数是因为对 Linux 系统安装的恐惧&#xff0c;害怕破坏电脑本身的系统&#xff0c;害怕硬盘数据…...

vue2手机项目如何使用蓝牙功能

要在Vue2手机项目中使用蓝牙功能&#xff0c;你需要先了解基本的蓝牙知识和API。以下是一些基本的步骤&#xff1a; 确认你的手机设备支持蓝牙功能。在Vue2项目中安装蓝牙插件或库&#xff0c;例如vue-bluetooth或vue-bluetooth-manager。你可以通过npm安装它们。在Vue2项目中…...

魔兽服务器学习-笔记1

文章目录 一、环境准备1&#xff09;依赖安装2&#xff09;源码下载和编译 二、生成数据信息1&#xff09;地图数据信息&#xff08;客户端信息&#xff09;2&#xff09;数据库信息 三、启动服务器四、日志模块五、数据库模块六、场景模块1&#xff09;地图管理2&#xff09;A…...

代码随想录day60|84.柱状图中最大的矩形

84.柱状图中最大的矩形&#xff08;找到右边第一个更小的元素&#xff09; 1、对于每一个柱子&#xff1a;找到左边第一个比他矮的&#xff0c;再找到右边第一个比他矮的。 2、首尾加0&#xff1a; 为什么要在末尾加0&#xff1a;否则如果原数组就是单调递增的话&#xff0c;就…...

常见面试题-分布式锁

Redisson 分布式锁&#xff1f;在项目中哪里使用&#xff1f;多久会进行释放&#xff1f;如何加强一个分布式锁&#xff1f; 答&#xff1a; 什么时候需要使用分布式锁呢&#xff1f; 在分布式的场景下&#xff0c;使用 Java 的单机锁并不可以保证多个应用的同时操作共享资源…...

三星990 evo plus 这个产品厉害吗

三星 990 EVO Plus 是一款定位精准、技术很有特点的“次旗舰”级 PCIe 4.0 固态硬盘。 它不属于追求极致性能的 990 PRO 系列&#xff0c;而是面向主流用户群体。它的“厉害”之处不在于绝对的跑分&#xff0c;而在于它在性能、能效、温控和价格之间找到了一个很好的平衡点&am…...

8大网盘直链下载助手:打破下载壁垒的浏览器神器

8大网盘直链下载助手&#xff1a;打破下载壁垒的浏览器神器 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 /…...

ABB机器人重定位移动的欧拉角与Rapid指令实战解析

1. ABB机器人重定位移动的核心原理 第一次接触ABB机器人重定位功能时&#xff0c;我也被那些绕来绕去的旋转搞得头晕。直到有次在调试焊接路径时&#xff0c;发现示教器上的摇杆操作其实就是在玩转欧拉角&#xff0c;这才恍然大悟。重定位移动说白了就是让机器人末端工具在保持…...

Translumo屏幕实时翻译工具:5分钟快速上手终极指南

Translumo屏幕实时翻译工具&#xff1a;5分钟快速上手终极指南 【免费下载链接】Translumo Advanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc. 项目地址: https://gitcode.com/gh_mirrors/tr/Translumo 你是否曾因…...

EmbeddingGemma-300m在Ollama中的应用:专利技术图谱自动生成

EmbeddingGemma-300m在Ollama中的应用&#xff1a;专利技术图谱自动生成 1. 专利分析的技术挑战与解决方案 专利工程师每天面对堆积如山的专利文档&#xff0c;传统人工分类方法效率低下且容易遗漏关键信息。以通信领域为例&#xff0c;一份典型的专利摘要可能包含"基于…...

Spring with AI (): 搜索扩展——向量数据库与RAG(上)吓

先回顾&#xff1a;三次握手&#xff08;建立连接&#xff09;核心流程&#xff08;实际版&#xff09; 为了让挥手流程衔接更顺畅&#xff0c;咱们先快速回顾三次握手的实际核心&#xff0c;避免上下文脱节&#xff1a; 第一步&#xff08;客户端→服务器&#xff09;&#xf…...

Python的__enter__中的预防泄漏资源

Python中的资源管理一直是开发者需要谨慎处理的问题&#xff0c;尤其是在处理文件、数据库连接或网络请求时&#xff0c;资源泄漏可能导致程序性能下降甚至崩溃。而__enter__方法作为上下文管理协议的核心&#xff0c;为预防资源泄漏提供了优雅的解决方案。通过with语句和上下文…...

Pixel Dream Workshop 软件测试实战:AI图像生成模型的自动化测试策略

Pixel Dream Workshop 软件测试实战&#xff1a;AI图像生成模型的自动化测试策略 1. 引言&#xff1a;当AI绘画遇上软件测试 最近在测试团队接手了一个有趣的项目——为Pixel Dream Workshop这款AI图像生成工具设计自动化测试方案。说实话&#xff0c;第一次看到那些由AI生成…...

从零开始了解GXUI字体系统:完整解析字体嵌入与字形渲染流程

从零开始了解GXUI字体系统&#xff1a;完整解析字体嵌入与字形渲染流程 【免费下载链接】gxui An experimental Go cross platform UI library. 项目地址: https://gitcode.com/gh_mirrors/gx/gxui GXUI是一个实验性的Go跨平台UI库&#xff0c;其字体系统是实现高质量文…...

offline meta-RL | 总结 FOCAL 等经典工作的数据收集 / 性能测试方法滋

在AI辅助开发的语境下&#xff0c;Skill就是一个包含了领域知识、最佳实践、代码模板的知识包。 以"DAO层CRUD生成"为例&#xff0c;一个Skill包含&#xff1a; /mnt/skills/dao-crud/ ├── SKILL.md # 使用说明 │ ├── 何时使用这个Skill │ …...