短信验证码的登录流程

点击上方 "编程技术圈"关注, 星标或置顶一起成长

后台回复“大礼包”有惊喜礼包!

日英文

Empty heart, is the best gift; alone the way, is the most beautiful scenery.

放空的心,是最好的礼物;独走的路,是最美的风景。

每日掏心话

生活有进有退输什么也不能输了心情。心情好,什么都好,心情不好,一切都乱了。
责编:乐乐 | 来自:blog.csdn.net/classabcd/java/article/details/82464582

编程技术圈(ID:study_tech)第 1282次推文

往日回顾: 全球最大成人网站,Pornhub将于年底关停!

     

   正文   

1、构造手机验证码:使用random对象生成要求的随机数作为验证码,例如4位验证码:1000~9999之间随机数;

2、使用接口向短信平台发送手机号和验证码数据,然后短信平台再把验证码发送到制定手机号上,接口参数一般包括:目标手机号,随机验证码(或包含失效时间),平台接口地址,平台口令;

3、保存接口返回的信息(一般为json文本数据,然后需转换为json对象格式);

4、将手机号--验证码、操作时间存入Session中,作为后面验证使用;

5、接收用户填写的验证码及其他数据;

6、对比提交的验证码与Session中的验证码是否一致,同时判断提交动作是否在有效期内;

7、验证码正确且在有效期内,请求通过,处理相应的业务。

搜索公众号Linux中文社区后台回复“命令行”,获取一份惊喜礼包。

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

<!--秒滴云的jar包-->
<dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.11</version>
</dependency>

二、我这里只是编写一个简单的短信验证功能,要是用其他的语音验证。。。。等等需要去秒滴云官方下载文档,下面是编写的一个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 "×tamp=" + 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;
}

4、执行方法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);
}
你还有什么想要补充的吗?PS:欢迎在留言区留下你的观点,一起讨论提高。如果今天的文章让你有新的启发,欢迎转发分享给更多人。
版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢!
欢迎加入后端架构师交流群,在后台回复“学习”即可。
最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。在这里,我为大家准备了一份2021年最新最全BAT等大厂Java面试经验总结。别找了,想获取史上最简单的Java大厂面试题学习资料扫下方二维码回复「面试」就好了猜你还想看阿里、腾讯、百度、华为、京东最新面试题汇集SpringBoot+webSocket实现扫码登录功能
用Nginx禁止国外IP访问我的网站...
自从在 IDEA 中用了热部署神器 JRebel,开发效率提升了 10 倍!
嘿,你在看吗?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/35683.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

App发送短信验证码实现

前言&#xff1a; 现如今&#xff0c;电话是接外卖和快递的&#xff0c;短信是用来收验证码的。那么像一般的App里面使用手机号验证码方式进行注册或登录是怎样实现的呢&#xff1f;这篇文章可能帮到你。 1.寻找合适的短信平台 因为三大运营商的限制摆在那里&#xff0c;凭个人…

GPT+时代来临:OpenAI开放GPT3.5模型,1000token仅1毛钱

GPT3.5 Model API 使用指南 今天OpenAI公司开放了最新的GPT3.5模型&#xff1a;gpt-3.5-turbo&#xff0c;也就是目前网页版的ChatGPT使用的模型。而此前OpenAI开放的最新的模型text-davinci-003则是基于GPT3模型构建的。并且价格十分便宜&#xff1a;1000 token/0.002美元&am…

『2023北京智源大会』开幕式以及基础模型前沿技术论坛

『2023北京智源大会』开幕式以及基础模型前沿技术论坛 文章目录 一. 黄铁军丨智源研究院院长1. 大语言模型2. 大语言模型评测体系FlagEval3. 大语言模型生态(软硬件)4. 三大路线通向 AGI(另外2条路径) 二. Towards Machines that can Learn, Reason, and Plan(杨立昆丨图灵奖得…

超级AI大脑:全能型学习助理

有句话说在知识的海洋里渴死&#xff0c;说的就是面对海量知识不知如何获取 进而可以理解为不知道如何学习 而现在我们迎来了一个超级大脑&#xff0c; 一个几乎帮助你深度学习的全能助理。 你可以询问超级AI大脑任何内容&#xff0c;回答常常会令你惊喜&#xff1a; 文案创作&…

前沿系列--Transform架构[架构分析+代码实现]

文章目录 前言总体架构总体任务使用 输入部分EmbeddingPosition Encodingwhy实现 注意部分注意力机制/自注意力掩码作用如何工作形状解释 完整实现多头注意力实现Norm处理 FeedForward 以及连接编码器解码器中间层组装 输出层模型组装总结 前言 Transform这玩意的大名我想就不…

android 如何修改系统语言

最近有需求需要去编程实现根据选择去修改系统语言, 根据查资料看setting源码有两种方式, 在这里记录一下. 修改系统语言或者控制系统开关机等操作即使声明了对应权限还是会报错, 这是因为这些操作需要系统权限,这里也会介绍如何使用android studio对应用进行系统签名. 一.如何…

goland 界面变成中文 修改回英文界面

新版本会自动装中文插件 主界面 文件->设置 打开 设置对话框 点击 插件 选择已安装 取消勾选 中文插件 确定 重新启动即可 恢复到原始的英文界面

Android多语言切换/适配——以英语为例

近期在做一个背单词APP来作为毕业设计&#xff0c;在app里面想设计一个切换语言为英语的功能&#xff0c;记录一下本次实现的效果以及步骤。 文章目录 实现效果中文模式英文模式 实现原理实现步骤1、创建相关的value文件夹和string.xml文件2、 在对应的string文件中选择合适的翻…

Android 10.0修改语言设置简体中文(中国)为简体中文(中国大陆)

Android Q中 Settings的语言设置选择列表中简体中文下&#xff0c;默认显示为中国、香港、台湾和新加坡&#xff1a; 如果想修改其显示为中国大陆&#xff0c;就必须修改ICU资源的配置。 ICU ICU 是开源项目&#xff0c; 提供了最新的unicode标准&#xff0c;字符集转换&…

设置日语输入法遇到的各种问题

一旦开始学习日语&#xff0c;就忍不住想在自己的电脑上输入日文&#xff0c;按照网上的各种说法&#xff0c;将win10自带的输入法添加了日语的语言包之后&#xff0c;还有各种小问题&#xff0c;于是又在网上各种搜索&#xff0c;花了不少时间。在此整理一下日语输入遇到的各种…

postman设置成中文

介绍: Postman一款非常流行的API调试工具。其实&#xff0c;开发人员用的更多。因为测试人员做接口测试会有更多选择&#xff0c;例如Jmeter、soapUI等。不过&#xff0c;对于开发过程中去调试接口&#xff0c;Postman确实足够的简单方便&#xff0c;而且功能强大。用户在开发…

postman怎么设置中文

很多小伙伴想问postman怎么如何设置中文?&#xff0c;但问题这个小工具没有人开发&#xff0c;期待业内大神开发一个吧。下面给大家分享下postman设置中文遇到的问题&#xff0c;一起来学习下吧。 postman怎么设置中文 postman设置中文方法 1.进入postman官网&#xff0c;可以…

【Android进阶】17、设置中文:语言地区的本地化、国际化

文章目录 为了国际化的需求我们设置中文版和英文版两个版本的 res/values/strings.xml,通过设置地区,让os自动找对应版本。 在 res 下添加 strings.xml,设置 Locale 为中文,效果如下: 生成后的文件如下图: 其实文件放置在 res/values-zh/strings.xml 中,如下: 在 res/…

百模大战,谁是下一个ChatGPT?

“不敢下手&#xff0c;现在中国还没跑出来一家绝对有优势的大模型&#xff0c;上层应用没法投&#xff0c;担心押错宝。”投资人Jucy&#xff08;化名&#xff09;向光锥智能表示&#xff0c;AI项目看得多、投的少是这段时间的VC常态。 ChatGPT点燃AI大爆炸2个月中&#xff0…

什么软件可以文字转语音?这些软件值得收藏

我们的第一感觉是视觉&#xff0c;第二感觉是听觉&#xff0c;当我们不方面使用视觉来获取信息的时候&#xff0c;常常都会使用听觉来获取信息。比如在做家务的时候&#xff0c;我们就可以在旁边播放有声读物&#xff0c;这样子即可以做家务&#xff0c;又可以获取知识内容等。…

录音转文字app有哪些?可以试试这几款录音转文字助手

你知道怎么将手机上的录音文件转换成文字内容吗&#xff1f;生活中我们有时需要记录一些较长的活动内容&#xff0c;手头却没有纸笔&#xff0c;只能先利用手机的录音功能将其记录下来&#xff0c;之后再进行处理。那大家知道手机要怎么将录音文件转文字吗&#xff1f;还在一边…

哪些录音转文字免费软件好用?分享这三款好用的软件

(UC自媒体)录音转文字免费软件哪个好&#xff1f;这三款值得收藏 (CSDN)哪些录音转文字免费软件好用&#xff1f;分享这三款好用的软件 嘿&#xff0c;小伙伴们&#xff0c;如果你是一名正在学习外语的学生&#xff0c;那么一定会遇到听不懂英语音频里面陌生词汇的难题。常反…

录音转文字电脑软件有哪些?录音如何转文字?

现在越来越多的小伙伴步入职场工作&#xff0c;会有自己新的工作方式和规划。有的人为了能让自己尽快适应快节奏的工作状态&#xff0c;会苦思冥想的寻求应对方法。例如有的人会从会议纪要开始着手&#xff0c;即把会议上的音频内容转换为文字、文档输出。那么你们知道录音转文…

文字转语音软件哪个好?这些软件值得收藏

文字转语音免费版软件哪个好&#xff1f;相信有不少小伙伴都有考虑过这个问题&#xff0c;每当自己需要将文字转为语音的时候&#xff0c;就会很头疼&#xff0c;应该用哪款软件&#xff1f;现在市面上有很多种软件可以将文字转成语音&#xff0c;但它们不是有限制次数&#xf…

各大文字转语音软件对比,哪个比较好呢?

现在市场上的文字转语音软件非常多&#xff0c;所以很多人已经挑花了眼。为了帮大家省事&#xff0c;来给大家总结几个比较热门的文字转语音软件&#xff0c;大家可以对比着看看。 1、讯飞配音 使用方式&#xff1a;网页版和APP 声音数量&#xff1a;讯飞配音的声音…