使用java短信验证
package cn.geekss.util;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.security.MessageDigest;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
import javax.json.JsonObject;
import org.json.JSONObject;
public class GetMessageCode1 {
// 请求的地址
protected static final String QUERY_PATH = "https://api.miaodiyun.com/20150822/industrySMS/sendSMS";
// 开发者主账号id ACCOUNT_SID 由32位英文字母和阿拉伯数字组成的账号唯一标识符0
protected static final String ACCOUNT_SID = "3832ef3b8a434462ba3b987db0bcddd5";
// token 签名用
protected static final String AUTH_TOKEN = "da47afd7203c40188830eaec650cfd3d";
/**
* 发送验证
*
* @param phone
* @return
*/
public static String sendCode(String phone) {
// 验证码
String code = getCode();
// 时间戳
String timeStamp = getTimeStamp();
// 获取签名
String sig = getSig(ACCOUNT_SID, AUTH_TOKEN, timeStamp);
// 内容
String content = "【博客园】登录验证码:" + code + ",如非本人操作,请忽略此短信。";
//输出流
OutputStreamWriter writer = null;
//输入流
BufferedReader bufferedReader = null;
StringBuilder sb = new StringBuilder();
try {
URL url = new URL(QUERY_PATH);
HttpURLConnection httpUrlConnection = (HttpURLConnection) url
.openConnection();
httpUrlConnection.setRequestMethod("POST");
// 是否允许写入
httpUrlConnection.setDoInput(true);
// 是否允许输出
httpUrlConnection.setDoOutput(true);
// 5秒
httpUrlConnection.setConnectTimeout(5000);
httpUrlConnection.setRequestProperty("Content-type",
"application/x-www-form-urlencoded");
writer = new OutputStreamWriter(
httpUrlConnection.getOutputStream(), "UTF-8");
// 请求的参数
String url_para = getQueryPara(ACCOUNT_SID, content, phone,
timeStamp, sig, "JSON");
writer.write(url_para);
System.out.println(url_para);
writer.flush();
/*
* reader = new
* InputStreamReader(httpUrlConnection.getInputStream(),"UTF-8");
*/
bufferedReader = new BufferedReader(new InputStreamReader(
httpUrlConnection.getInputStream(), "UTF-8"));
String stringline = "";
while ((stringline = bufferedReader.readLine()) != null) {
sb.append(stringline);
}
} catch (Exception e) {
e.printStackTrace();
}
JSONObject object = new JSONObject(sb.toString());
System.out.println(object);
String defaultResponse = "00000";
String str = (String) object.get("respCode");
if (str.equals(defaultResponse)) {
return code;
} else {
return defaultResponse;
}
}
/**
* 请求的参数集合
*
* @param accountSid
* @param smsContent
* @param to
* @param timestamp
* @param sig
* @param resultDataType
* @return
*/
public static String getQueryPara(String accountSid, String smsContent,
String to, String timestamp, String sig, String resultDataType) {
String url = "accountSid=" + accountSid + "&smsContent=" + smsContent
+ "&to=" + to + "×tamp=" + timestamp + "&sig=" + sig
+ "&respDataType=" + resultDataType;
return url;
}
/**
* 获取时间戳
*
* @return
*/
public static String getTimeStamp() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
return sdf.format(new Date());
}
/**
* 签名 MD5 加密
*
* @return
*/
public static String getSig(String account_Sid, String auth_Token,
String timeStamp) {
String sig = account_Sid + auth_Token + timeStamp;
StringBuilder sb = new StringBuilder();
// 获取 MD5 加密
try {
// 获取MD5加密类
MessageDigest digest = MessageDigest.getInstance("MD5");
byte[] bytes = digest.digest(sig.getBytes());
for (byte b : bytes) {
String hex = Integer.toHexString(b & 0xff);
if (hex.length() == 1) {
sb.append("0" + hex);
} else {
sb.append(hex);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return sb.toString();
}
/**
* 获取发送的验证码
*
* @return
*/
public static String getCode() {
String code = new Random().nextInt(1000000) + "";
if (code.length() < 6) {
return getCode();
}
return code;
}
public static void main(String[] args) {
System.out.println(sendCode("13189031999"));
}
}
使用java短信验证的更多相关文章
- java短信验证和注册
最近公司需要用到短信验证注册,所以申请了阿里云的短信服务.我的项目是分布式的spring boot 原理: 利用第三方发送短信 获取回执消息,然后存入缓存里面 将用户填写的验证码与缓存里面的验证码对比 ...
- JAVA短信验证登录
短信验证登陆 1.点击触发,以电话号码为参数调用发送验证登录短信方法 2.默认模板为验证模板 生成6位验证码 3.将生成的验证码和手机号码放入缓存,(已经设置好缓存存放时间) 4.调用发送模板短信方法 ...
- 阿里云短信验证~JAVA后台
maven :中的 pom.xml添加 <dependency> <groupId>com.aliyun</groupId> <artifactId>a ...
- Mob.com 短信验证的简单使用
1.环境配置 http://wiki.sharesdk.cn/android-短信sdk集成文档/ a.sdk下载 http://www.mob.com/#/downloadDetail/SMS/an ...
- Mob短信验证的具体使用
原文著作权地址:http://www.jb51.net/article/84946.htm demo地址:http://git.oschina.net/lizhanqi/MobSMSDemo 一.前言 ...
- 短信验证登陆-中国网建提供的SMS短信平台
一.JAVA发送手机短信常见的有三种方式(如下所列): 使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册 使用短信mao的方式进行短信 ...
- 『实践』Android之短信验证码(用的Mob短信验证)
1.参考资料 Mob网站:http://www.mob.com/ Mob在Github上的例子:https://github.com/MobClub/SMSSDK-for-Android 教程:htt ...
- Wex5短信验证
调了好几天短信验证测试,终于成功,现将全部源代码发给大家,希望对各位有所帮助,少走弯路 Model.prototype.saveUserBtnClick = function(event ...
- 【mob】Android短信验证+源码
在很多的应用当中,都涉及到了短信验证的功能,比如在注册或者找回密码的时候,那么我们如何通过第三方的平台来完成这个功能呢? 本面博文就实现短信验证,来做一个小的栗子. 第一步-下载开发包 第二步-将SD ...
随机推荐
- Kafka(五) —— Kafka源码本地调试
搭建环境 安装scala 安装gradle 在kafka源码的根目录执行命令 gradle wrapper gradle idea 打开IDEA,File -> Open -> kafka ...
- xpath-helper使用
xpath-helper提取不到frame元素时: https://blog.csdn.net/skywinne/article/details/83832126
- python3下scrapy爬虫(第五卷:初步抓取网页内容之scrapy全面应用)
现在爬取http://category.dangdang.com/pg1-cid4008149.html网址上的商品价格,名称,评价数量 先准备下下数据:商品名,商品链接,评价数量 第一步:在item ...
- 从CVPR 2014看计算机视觉领域的最新热点
2014看计算机视觉领域的最新热点" title="从CVPR 2014看计算机视觉领域的最新热点"> 编者按:2014年度计算机视觉方向的顶级会议CVPR上月落下 ...
- First Django app(各个文件以及文件夹解析)
mkdir mysite cd mysite django-admin.py startproject mysite 执行上面的命令,得到一下内容: mysite/ manage.py mysite/ ...
- sql执行过程
作为一个程序员,几乎所有人都使用过 SQL 语言,无论是在命令行执行.程序调用,还是在 SQL 工具里,你都做过这样的事:写一个规范的 SQL 语句,然后等待数据库返回的结果,然后再基于结果做各种逻辑 ...
- <USACO09DEC>过路费Cow Toll Pathsの思路
啊好气 在洛谷上A了之后 隔壁jzoj总wa 迷茫了很久.发现那题要文件输入输出 生气 肥肠不爽 Description 跟所有人一样,农夫约翰以着宁教我负天下牛,休叫天下牛负我的伟大精神,日日夜夜苦 ...
- spring-boot-学习笔记(三)-过滤器
过滤器有两种配置方式,一种是通过注解来完成,一种是通过自定义配置类来设置 这里假设的场景是,定义一个过滤器,过滤所有请求,如果参数中没有username信息则重定向到login_page登录页面, ...
- 将配置好的虚拟机文件导入VMware
第一步:打开VMware Workstation Pro 第二步: 选择文件,图示: 第三步:点击打开,选择配置好的虚拟机文件目录 点击打开就ok了,图示
- classnames
在React中编写模板时给标签添加class. 如果是固定的className="XX"就可以了. 如果要根据状态值动态应用或去除, 或使用多个class时就麻烦了. 可以使用cl ...