短信验证码登录源码及解析~~

验证码短信 API 接入指南:Java 语言示例代码 总之,验证码短信 API 已经成为现代社会中不可或缺的一部分,可以广泛应用于各种场景,包括用户注册和登录、找回密码、支付验证等等。通过接入验证码短信 API,企业可以快速、便捷地发送和验证短信验证码,提高账户安全性和用户体验,让企业在市场竞争中脱颖而出,有需要的赶紧用起来吧~ 阅读详情

在构建网站时,我们经常会在登录页面进行短信验证码功能的开发,这里,给大家分享一个常用的短信验证码源码

步骤

1、构造手机验证码:使用random对象生成要求的随机数作为验证码,例如4位验证码:1000~9999之间随机数;
2、使用接口向短信平台发送手机号和验证码数据,然后短信平台再把验证码发送到制定手机号上,接口参数一般包括:目标手机号,随机验证码(或包含失效时间),平台接口地址,平台口令;
3、保存接口返回的信息(一般为json文本数据,然后需转换为json对象格式);
4、将手机号–验证码、操作时间存入Session中,作为后面验证使用;
5、接收用户填写的验证码及其他数据;
6、对比提交的验证码与Session中的验证码是否一致,同时判断提交动作是否在有效期内;
7、验证码正确且在有效期内,请求通过,处理相应的业务。

具体操作

一、首先添加一个jar包,工具类会用到。

commons-codec commons-codec 1.11 我这里只是编写一个简单的短信验证功能,要是用其他的语音验证。。。。下面是编写的一个config文档,专门存放一些参数。 图片 ***二、编写http请求工具类***

public class HttpUtil
{
/**
* 构造通用参数timestamp、sig和respDataType
*
* @return
*/
public static String createCommonParam()
{
// 时间戳
SimpleDateFormat sdf = new SimpleDateFormat(“yyyyMMddHHmmss”);
String timestamp = sdf.format(new Date());

  // 签名
  String sig = DigestUtils.md5Hex(Config.ACCOUNT_SID + Config.AUTH_TOKEN + timestamp);

  return "&timestamp=" + timestamp + "&sig=" + sig + "&respDataType=" + Config.RESP_DATA_TYPE;

}

/**
* post请求
*
* @param url
* 功能和操作
* @param body
* 要post的数据
* @return
* @throws IOException
*/
public static String post(String url, String body)
{
System.out.println(“url:” + System.lineSeparator() + url);
System.out.println(“body:” + System.lineSeparator() + body);

  String result = "";
  try
  {
     OutputStreamWriter out = null;
     BufferedReader in = null;
     URL realUrl = new URL(url);
     URLConnection conn = realUrl.openConnection();

     // 设置连接参数
     conn.setDoOutput(true);
     conn.setDoInput(true);
     conn.setConnectTimeout(5000);
     conn.setReadTimeout(20000);
     conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
     // 提交数据
     out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");
     out.write(body);
     out.flush();

     // 读取返回数据
     in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
     String line = "";
     boolean firstLine = true; // 读第一行不加换行符
     while ((line = in.readLine()) != null)
     {
        if (firstLine)
        {
           firstLine = false;
        } else
        {
           result += System.lineSeparator();
        }
        result += line;
     }
  } catch (Exception e)
  {
     e.printStackTrace();
  }
  return result;

}

/**
* 回调测试工具方法
*
* @param url
* @param reqStr
* @return
*/
public static String postHuiDiao(String url, String body)
{
String result = “”;
try
{
OutputStreamWriter out = null;
BufferedReader in = null;
URL realUrl = new URL(url);
URLConnection conn = realUrl.openConnection();

     // 设置连接参数
     conn.setDoOutput(true);
     conn.setDoInput(true);
     conn.setConnectTimeout(5000);
     conn.setReadTimeout(20000);

     // 提交数据
     out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");
     out.write(body);
     out.flush();

     // 读取返回数据
     in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
     String line = "";
     boolean firstLine = true; // 读第一行不加换行符
     while ((line = in.readLine()) != null)
     {
        if (firstLine)
        {
           firstLine = false;
        } else
        {
           result += System.lineSeparator();
        }
        result += line;
     }
  } catch (Exception e)
  {
     e.printStackTrace();
  }
  return result;

}
}
三、生成四位数的方法

public static String runNumber() {
String str=“ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789”;
StringBuilder sb=new StringBuilder(4);
for(int i=0;i<4;i++)
{
char ch=str.charAt(new Random().nextInt(str.length()));
sb.append(ch);
}
System.out.println(sb.toString());
String code = sb.toString();
return code;
}
四、执行方法execute(),便会发送成功

public class IndustrySMS
{
private static String operation = “/industrySMS/sendSMS”;

private static String accountSid = Config.ACCOUNT_SID;
private static String to = “15342349382”;
private static String smsContent = “【小陶科技】登录验证码:{”+runNumber().toString()+"},如非本人操作,请忽略此短信。";

/**
* 验证码通知短信
*/
public static void execute()
{
String tmpSmsContent = null;
try{
tmpSmsContent = URLEncoder.encode(smsContent, “UTF-8”);
}catch(Exception e){

   }
   String url = Config.BASE_URL + operation;
   String body = "accountSid=" + accountSid + "&to=" + to + "&smsContent=" + tmpSmsContent
       + HttpUtil.createCommonParam();

   // 提交请求
   String result = HttpUtil.post(url, body);
   System.out.println("result:" + System.lineSeparator() + result);

}

that’s all

短信验证码 大家好,上一篇写了图片验证码的业务逻辑和实现过程,本篇博客主要介绍手机验证码业务。 前言 公司系统在注册页面有这么一个手机号验证的业务场景,公司大佬比较忙,不顾的来写这个简单的业务需求,所有就交给我来写了。 实现思路 整个流程:用户填写手机号,并请求获取验证码; 1.用户填写手机号,发送给后台; 2.后台校验手机号是否合法(正则校验),合法就生成一个4位/6位的随机数字,不合法就提示前端 “手机号... 阅读详情

相关推荐

06-发送短信验证码实现登录功能

3、双向绑定:修改变量值,则元素展现的值也会变化;反过来,用户操作元素,则script里的变量也会发生变化。style 样式进行布局的部分。template 展现页面元素的部分。script 逻辑的部分。vue3两种声明响应式变量:reactive, ref。1、一个vue页面,由三个部分组件,都不是必须的。vue文件即可以是一个页面,也可以是一个组件。

NikoChina的博客 1130

短信验证码是什么?短信验证码是什么意思

伴随着智能手机的日益发展,我们在一些网站注册的时候或者进行重要信息需要核对的时候,都会收到短信验证码。相信很多人知道那个东西,但是对于小白或者对于我们一些不会玩智能手机的老人来说,短信验证码是什么?短信验证码是什么意思?对于她们来说,估计很难明白。今天电脑百事网小编就为大家解答一下。 短信验证码是什么?短信验证码是什么意思? 短信验证码是什么?短信验证码是什么意思?   短

yuexin111的博客 1万+

Android开发实战:基于Bmob实现短信验证码功能完整源码解析

Bmob(Backend as a Service)是一种典型的无服务器(Serverless)后端云服务平台,专为移动端开发者设计,屏蔽了传统服务端开发中的运维、数据库管理与API搭建等复杂环节。其核心架构基于RESTful API + 云端数据库 + SDK封装三层模型,开发者通过调用简洁的客户端SDK即可实现数据持久化、用户认证、文件存储及短信服务等功能。graph LRB --> C[(NoSQL 数据库)]B --> D[文件存储]B --> E[短信服务]

weixin_42607969的博客 1773

实现短信验证码登录

文章目录在开发短信验证码接口验证码实体SmsCode手机验证码发送接口手机验证码生成接口不拦截短信验证码路径登录页面测试重构校验码处理接口 ValidateCodeProcessor,封装不同校验码的处理逻辑抽象实现 AbstractValidateCodeProcessor两个子类分别实现发送功能 ImageCodeProcessor SmsCodeProcessorValidateCodeC...

whaleluo的博客 2万+

手机短信验证码php版源代码

验证通是业内首家提供语音验证码的网站,提供详细的客户接口示例。 账号更安全如:游戏玩家绑定了手机或固话,只可用绑定过的号码向验证通获取随机密码,才可以登录游戏或转账等一系列的操作等 用户信息更真实:只有通过验证的用户才可以注册,这样保证了用户的联系信息资料的100%的准确性 语音导航个性化:可以根据你的公司、网站、网店、游戏等等个性化语音提示的定制

GitHub漏洞挖掘与CVE提交实战指南:从发现到编号的完整链路

GitHub开源项目是现代软件供应链的核心节点,其安全漏洞直接影响全球数百万系统的机密性、完整性与可用性。理解漏洞本质需回归CIA三元组原理,而真实可利用性依赖对协议解析层、配置加载区和依赖传递链等高危模块的精准识别。技术价值在于将模糊的‘可疑逻辑’转化为符合MITRE CVE标准的可验证事件,支撑SDL流程、威胁情报建设与供应链风险管理。典型应用场景包括甲方安全工程师推动供应商修复、独立研究者参与负责任披露,以及DevSecOps团队构建自动化风险坐标系。本文基于27次CVE提交经验,聚焦GitHub代码

weixin_33646989的博客 650

【项目实战】基于Redis实现短信验证码登录 (附源码、思路)

  各位小伙伴们大家好,欢迎来到这个小扎扎的Redis 6专栏,在这个系列专栏中我对B站黑马的Redis教程进行一个总结,鉴于 看到就是学到、学到就是赚到 精神,这波依然是血赚 ┗|`O′|┛

扎哇太枣糕的笔记博客 5101

全网最详细单细胞保姆级分析教程(一) ---pbmc

通过观察热图,可以了解不同细胞在主成分上的分布情况,以及主成分与细胞特征之间的关系。数据归一化是数据分析中的常见步骤,旨在消除数据集中不同特征之间的量纲差异,并使它们在相同的尺度上进行比较。函数会根据指定的主成分维度计算数据点之间的距离,并找到每个数据点的邻居。函数会根据数据点之间的相似性将其分组到不同的聚类中。数据缩放是数据分析中的常见步骤,旨在将数据的特征值调整到相似的范围,以避免某些特征对分析结果的过度影响。通过可视化维度载荷,可以了解哪些特征对主成分的形成起到了重要作用,以及不同特征之间的相关性。

ZxVSaccount的博客 6704

基于Springboot的后端开发的短信验证码登录功能

发送验证码:通过调用第三方短信服务API向用户发送验证码。验证码登录:用户输入验证码后,后端验证其有效性并完成登录。登录状态校验:通过拦截器验证用户登录状态,确保接口安全。

PerterTingle的博客 2053

告别手动复制粘贴!用R语言脚本批量抓取TCMSP中药靶点基因(附完整代码)

本文介绍如何使用R语言脚本自动化抓取TCMSP数据库中的中药靶点基因数据,告别手动复制粘贴的低效操作。通过详细的代码示例和参数设置,帮助研究人员快速获取并过滤符合药代动力学标准的中药成分及其靶点基因,大幅提升研究效率。特别适合生物信息学和中药现代化研究领域的从业者。

weixin_26950847的博客 261

YOLOV8多模态(可见光+红外光目标检测任务,基于Ultralytics官方代码实现)

torch 2.3.1 torchvision 0.18.1 Python 3.8.19 tensorrt 8.5.3.1DroneVehicle数据集下载地址DroneVehicle 数据集由无人机采集的 56,878 张图像组成,其中一半是 RGB 图像,其余是红外图像。我们为这 5 个类别制作了丰富的注释,其中包含定向边界框。其中,汽车在 RGB 图像中有 389,779 个注释,在

Mjy的博客 7584

易语言注册码生成以及验证源码_短信验证码的登录流程

点击上方“Java基基”,选择“设为星标”做积极的人,而不是积极废人!源码精品专栏原创 | Java 2020超神之路,很肝~中文详细注释的开源项目RPC 框架 Dubbo 源码解析网络应用框架 Netty 源码解析消息中间件 RocketMQ 源码解析数据库中间件 Sharding-JDBC 和 MyCAT 源码解析作业调度中间件 Elastic-Job 源码解析分布式事务中间件 ...

weixin_39677538的博客 2075

VS2103+Intel2013+MSMPI运行Fortran并行程序

VS2103+Intel2013+MSMPI运行Fortran并行程序MSMPI安装新建Fortran90项目编写Fortran并行程序在cmd运行编译完成的执行文件 MSMPI安装 我这里采用的是Microsoft MPI v9.0.1,可以点此下载。下载完成后同时安装msmpisdk.msi、msmpisetup.exe两个文件,安装位置默认即可。 其中msmpisdk.msi的默认安装路径在C:\Program Files (x86)\Microsoft SDKs\MPI,该文件包含了mpi环境所需

weixin_43176703的博客 2936

短信验证码的登录流程

点击上方“Java基基”,选择“设为星标”做积极的人,而不是积极废人!源码精品专栏原创 | Java 2020超神之路,很肝~中文详细注释的开源项目RPC 框架 Dubbo 源码解析...

weixin_44421461的博客 588

基于 MATLAB 的 FastICA 算法实现语音信号盲分离

FastICA 算法通过最大化信号的非高斯性,找到独立成分,从而实现信号的分离。这些混合的信号被称为盲源信号,我们希望通过分析混合信号,将它们分离出来以便进行进一步的处理和分析。FastICA 是一种常用的盲源信号分离算法,它基于统计学原理,通过寻找独立成分来实现信号的分离。FastICA(独立成分分析)是一种常用的盲源信号分离算法,在语音和图像处理领域都有广泛的应用。本文将介绍如何使用 MATLAB 实现 FastICA 算法来实现语音信号的盲分离,并提供相应的源代码。FastICA 算法原理。

学习使你进步。 2024

第14.7章 高翔博士最新开源框架Lightning-LM源码解读(七):PoseExtrapolator模块深度剖析,揭秘激光SLAM高频位姿外推核心技术

PoseExtrapolator是Lightning-LM框架中负责高频位姿外推的核心模块,通过融合DR(航位推算)、激光里程计和PGO(位姿图优化)数据实现精准实时定位。模块初始化依赖PGO数据,后续通过DR数据进行高频位姿更新,并利用PGO结果进行误差补偿。关键函数AddDRLocAndExtrapolate处理DR增量位姿,结合速度补偿机制逐步修正误差,保证高频输出的同时提升精度。该模块体现了多传感器融合思想,通过互补性数据(高频DR与低频高精PGO)实现鲁棒定位,代码中使用了SE3位姿表示、互斥锁保

行知SLAM 348

C#短信发送接口源码

短信发送接口源码(注册,登录,改密) using DQGame.Web.Helper; using DQGame.Web.Models; using Game.Utils; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.D...

CoderThy的博客 845

[AI] 企业内网部署大模型的三种常见方案:从“能用”到“好用”的技术选型指南

企业内网部署大模型的三种方案解析:本地模型安全但门槛高,平台方案(如Dify)最平衡推荐,混合架构适合进阶需求。关键路径是渐进式演进,从快速验证到平台化建设,核心在于流程优化而非单纯选模型。数据安全、成本可控和工程落地能力是决策重点。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 769

1.基于Session实现验证码登录

基于Session实现登录流程

weixin_46589153的博客 1344

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

短信验证登录

前言 大家好,今天给大家带来短信验证教给大家玩玩。 现在的网站获得APP基本都有短信验证码登录,感觉这个功能高大上。没错它就是高大上。 这次演示的示例使用SSH框架做的Java项目来演示,后期各位伙伴学会了再把这个功能加到自己的项目中。 准备工作 编辑器:eclipse, 手机一台, 电脑一台而且还要带网。 实践 现在先介绍一个网站给大家,就是中国网建官网。首先我们进入这个网址。我们与短信验证的故...

CQWNB的博客 919

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

1.短信登录

是否需要会话共享?├─ 否 → 单机部署或粘滞会话└─ 是 → 选择集中存储方案├─ 高性能要求 → Redis/Memcached├─ 强一致性要求 → 数据库+缓存└─ 安全敏感 → 客户端存储+加密理解 Session 共享问题的核心在于认识到有状态服务与无状态扩展之间的本质矛盾。现代分布式系统通常采用"尽量无状态,必要时集中存储"的折中方案,在一致性与可用性之间取得平衡。

2302_81141145的博客 1603

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Android实现手机获取验证码登录的功能 (附带源码)

Android实现手机获取验证码登录的功能 (附带源码)

欢迎来到我的博客!这里是一个专注于计算机技术的分享平台,涵盖编程开发、算法研究、系统架构、软件工程等多个领域。无论你是初学者还是资深开发者,都能在这里找到有价值的内容。 1800

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

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

2401_84139610的博客 1641

搞一个短信验证码登录,难吗?

点击上方“Java基基”,选择“设为星标”做积极的人,而不是积极废人!源码精品专栏原创 | Java 2020超神之路,很肝~中文详细注释的开源项目RPC 框架 Dubbo 源码解析...

weixin_44421461的博客 133

ASP通过http调用验证码短信接口源码

通过验证码短信http调用接口,您可以很快速的在网站或者app中集成手机验证及订单通知类短信功能,该源码只是核心代码,具体可以根据您的实际需求进行扩展。

GUYSGO的专栏 2548

借助云开发实现短信验证码的发送,你会了么

最近在做小程序验证码登陆时,用到了短信发送验证码的需求,自己也研究了下,用云开发结合云函数来实现验证码短信发送还是很方便的。 老规矩,先看效果图 这是我调用腾讯云的短信平台发送的登陆验证码。核心代码其实只有下面这么多 是不是感觉实现起来特别简单,怎么说呢,我们代码调用其实就这么几行,就可以实现短信的发送,但是腾讯云短信模板的审核比较繁琐,还有我们先去申请短信模板,...

chen801090的博客 992
上一篇: SpringMVC乱码问题及json乱码问题解决
下一篇: java.lang.UnsupportedOperationException原因及处理方法
南风1789
博客等级 码龄6年 54粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南风1789

时间宝贵,希望给与支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值