手机短信验证现在在各种系统可以说都是用的非常普遍的,这个可能是方便和安全性的考虑,所以才广泛的使用简单实用一下短信接口。

Demo下载

链接: 百度网盘 请输入提取码

提取码: i1r8

实用短信接口公司的接口

以“秒滴”营销短信群发平台_智能5G短信_短信语音验证码_106短信接口-秒嘀科技接口公司为例

1注册账号

2获取一下两个信息

3创建短信模板

创建为审核通过后模板为:

【柴火科技】您的验证码为{1},请于2分钟内正确输入,如非本人操作,请忽略此短信。

等价于:

【柴火科技】您的验证码为" + randNum + ",请于2分钟内正确输入,如非本人操作,请忽略此短信。

创建项目Maven(非web项目)项目

pom.xml

<dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.10</version></dependency>

工具类

package com.imooc.util;import java.util.Random;public class RandNum {/*** @生成一个6位的随机码  */public static String createRandNum() {Random random = new Random();StringBuffer sb = new StringBuffer();for(int i = 0; i <= 5; i++) {String s = random.nextInt(10) + "";sb.append(s);}return sb.toString();}}

工具类

注意:

(1)public static final String AUTH_TOKEN = 图一上面的信息;

(2)public static final String ACCOUNT_SID = 图一上面的信息;

(3)sendMegTo方法中的变量  要和 图二图三匹配,否则会报错,就是拼接字符串

String smsContent = "【柴火科技】您的验证码为" + randNum + ",请于2分钟内正确输入,如非本人操作,请忽略此短信。";

(4)剩下的不需要改动

package com.imooc.util;import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;import org.apache.commons.codec.digest.DigestUtils;public class SendTelMsgUtils {//http://www.miaodiyun.com//*** ACCOUNT_SID:开发者主账号ID(注册后自动生成)*/public static final String ACCOUNT_SID = "填写ACCOUNT SID";/*** AUTH_TOKEN:开发者账号认证密匙(注册后自动生成)*/public static final String AUTH_TOKEN = "填写AUTH TOKEN";/*** BASE_URL:请求地址*/public static final String BASE_URL = "https://api.miaodiyun.com/20150822/industrySMS/sendSMS";/*** RESP_DATA_TYPE:数据返回格式为JSON格式*/public static final String RESP_DATA_TYPE = "json";/*** * @Title:sendMsgTo* @Description:发送短信验证码 @param:* @return:String*/public static String sendMsgTo(String to, String createRandNum) {/*** randNum:生成的验证码随机数*/String randNum = createRandNum;/*** smsContent:短信内容(短信签名+短信内容,注意要和配置的模板一致,否则报错)*/String smsContent = "【柴火科技】您的验证码为" + randNum + ",请于2分钟内正确输入,如非本人操作,请忽略此短信。";/*** 获取时间戳*/String timestamp = getTimestamp();/*** 获取签名*/String sig = sig_MD5(ACCOUNT_SID + AUTH_TOKEN + timestamp);/*** 要提交的post数据*/String http_post = "accountSid=" + ACCOUNT_SID + "&smsContent=" + smsContent + "&to=" + to + "&timestamp="+ timestamp + "&sig=" + sig + "&respDataType=" + RESP_DATA_TYPE;OutputStreamWriter osw = null;BufferedReader br = null;StringBuffer sb = new StringBuffer();try {/*** 获取连接*/URL url = new URL(BASE_URL);/*** 打开连接*/URLConnection conn = url.openConnection();/*** 设置连接参数*/conn.setDoOutput(true);conn.setDoInput(true);conn.setConnectTimeout(5000);conn.setReadTimeout(20000);/*** 提交数据*/osw = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");osw.write(http_post);osw.flush();/*** 读取返回数据*/br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));String line = "";while ((line = br.readLine()) != null) {sb.append(line);}} catch (Exception e) {e.printStackTrace();}return sb.toString();}/*** 获取时间戳*/public static String getTimestamp() {SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");String date = sdf.format(new Date());return date;}/*** 对"ACCOUNT_SID + AUTH_TOKEN + timestamp"进行MD5加密* *                            <dependency>*                            <groupId>commons-codec</groupId>*                            <artifactId>commons-codec</artifactId>*                            <version>1.10</version> </dependency>*                            </dependencies>*/public static String sig_MD5(String str) {String sig_md5 = DigestUtils.md5Hex(str);return sig_md5;}}

测试方法

package com.imooc.test;import com.imooc.util.RandNum;
import com.imooc.util.SendTelMsgUtils;public class Main {public static void main(String[] args) {// controller中随机创建一个randNumString randNum = RandNum.createRandNum();System.out.println("验证码是:" + randNum);// randNum发送给手机号String result = SendTelMsgUtils.sendMsgTo("17863961702", randNum);System.out.println(result);}}

java实现手机验证码功能相关推荐

  1. springboot+vue实现手机验证码功能

    springboot+vue实现手机验证码功能 榛子云短信平台用户中心注册登录(有免费的一条消息,剩下的需要买)(阿里云个人得备案) 在springboot中加入依赖,用到了redis,阿里的fast ...

  2. 腾讯云短信服务实现 Java 发送手机验证码(SpringBoot+Redis 实现)

    文章目录 腾讯云短信服务实现 Java 发送手机验证码(SpringBoot+Redis 实现) 1.打开腾讯云短信服务 2.创建短信签名 3.创建短信正文模板 4.等待全部审核完毕即可 5.发送短信 ...

  3. Redis:09-Redis_Jedis实现手机验证码功能

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

  4. Redis实现手机验证码功能

    完成一个手机验证码功能 要求: 1.输入手机号,点击发送后随机生成6位数字码,2分钟有效 2.输入验证码,点击验证,返回成功或失败 3.每个手机号每天只能输入3次 流程分析 代码实现 public c ...

  5. thinkphp实现发送手机验证码功能!

    php实现发送手机验证码功能如下: //发送手机验证码public function sendPhoneCodeMessage(){ vendor('SendPhoneCode.SendCode',' ...

  6. 实现手机验证码功能(Redis)

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

  7. java发送手机验证码实现

    正文 今天来用java实现手机验证码的发送. 短信平台有很多,中国网建提供的SMS短信通,注册免费5条短信,3条彩信, http://sms.webchinese.cn/ 但是刚才试了,第一次用官方提 ...

  8. java实现发送手机验证码功能

    1. 进入秒嘀科技(http://www.miaodiyun.com/),注册一个账号 2. 注册好之后,点击 用户中心 -> 账户管理,就会进入如下界面 (顺便提一下,新注册的用户,平台会免费 ...

  9. java短信验证码功能发送的验证码如何校验_Java实现发送短信验证码功能

    一个发送短信验证码的功能,使用的是信易通的短信平台接口,然后在Java中使用HttpClient模拟POST请求或者GET请求(看短信平台要求,一般的情况下都是POST请求),调用短信平台提供的接口( ...

最新文章

  1. 谭浩强《C++程序设计》书后习题 第十三章-第十四章
  2. python在哪里学比较好-新手从Python的哪个版本开始学比较好?
  3. EOS 源代码解读 (2)插件-流程
  4. 老大爷的手法一看就不一般!
  5. java的封装性的优点_18、Java的三大特性之封装
  6. windbg学习----r?
  7. 四部门联合约谈马云等蚂蚁集团有关人员,蚂蚁集团回应...
  8. WorldList5
  9. UVa 10950 - Bad Code
  10. android封装全局调用的toast_自定义Toast,解决系统Toast存在的问题
  11. 详解:Drools规则引擎探究以及在IOT的应用
  12. 计算机硬盘 半导体存储器 相关概念
  13. 文献检索——Web of Science|CSDN创作打卡
  14. 系统架构师考试 2019
  15. 选择什么语言真的重要吗
  16. protobuf入门教程(四):repeated限定修饰符
  17. Ensemble查看基因的外显子信息,并根据染色体位点判断是第几号外显子
  18. win10卸载软件_教你彻底关闭Win10自动更新,以及卸载预装应用
  19. 学了 Python 能用来做什么?
  20. 【ChatGPT模板】教学辅助教案篇

热门文章

  1. 介绍兴趣爱好的网页html,简历兴趣爱好描述技巧
  2. ps aux 中的 VSZ 代表什么意思,RSS 代表什么意思
  3. 好的网站标志设计之意象运用手法
  4. BZOJ 3699 GAL的数组
  5. 计算机耍人,抖音中的连环套路耍人问题
  6. >>技术开发:轻量级BI工具Superset
  7. linux 画面好 游戏,2017年13款画面最优秀的游戏!极致画面美到惊叹
  8. 《Precise and realistic grasping and manipulation in Virtual Reality without force feedback》论文解读
  9. 案例分享:Qt高频fpga采集数据压力位移速度加速度分析系统(通道配置、电压转换、采样频率、通道补偿、定时采集、距离采集,导出excel、自动XY轴、隐藏XY轴、隐藏显示通道,文件回放等等)
  10. Linux 4.x MTD源码分析-cfi-flash设备probe过程分析