java实现发送手机验证码 |
您所在的位置:网站首页 › 手机验证码发给我本人 › java实现发送手机验证码 |
java手机验证码发送功能
现在很多网页应用的登录注册都需要用到手机验证码,正好这几天公司也有个新项目,其中注册账户就需要验证码。在网上找了一些资料学习了以后,自己也写了一个短信发送功能。我用的短信平台是秒嘀科技http://www.miaodiyun.com/。这个注册就有200条免费短信,在开发阶段测试用很方便。 项目目录结构,短信发送所需的类在util包里(JsonResult不是) 我们可以看一下短信码通知短信的API文档
首先是生成验证码的RandUtil类。这里验证码我定义的是6位数,利用随机数生成,为GetMessage提供验证码。 import java.util.Random; public class RandUtil { public static String getRandNum() { String randNum = new Random().nextInt(1000000)+""; System.out.println("生成"+randNum); if (randNum.length()!=6) { //如果生成的不是6位数随机数则返回该方法继续生成 return getRandNum(); } return randNum; } }然后是一个发送验证码的工具类QueryUtil。这个类我们在里面写MD5的签名加密sig和时间戳timestamp的获取 import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.text.SimpleDateFormat; import java.util.Date; /** * 类描述:发送验证码工具类 */ public class QueryUtil { public static String queryArguments(String ACCOUNT_SID,String AUTH_TOKEN, String smsContent,String to) { String timestamp = getTimestamp(); //时间戳 String sig = MD5(ACCOUNT_SID,AUTH_TOKEN,timestamp);//签名认证 String str = "accountSid="+ACCOUNT_SID+"&smsContent="+ smsContent+"&to="+to+"×tamp="+timestamp+"&sig="+sig; return str; } /** * MD5加密 * @param args * @return */ public static String MD5(String... args){ //动态参数 StringBuffer result = new StringBuffer(); if (args == null || args.length == 0) { return ""; } else { StringBuffer str = new StringBuffer(); for (String string : args) { str.append(string); } System.out.println("加密前:\t"+str.toString()); try { MessageDigest digest = MessageDigest.getInstance("MD5"); byte[] bytes = digest.digest(str.toString().getBytes()); for (byte b : bytes) { String hex = Integer.toHexString(b&0xff); //转化十六进制 if (hex.length() == 1) { result.append("0"+hex); }else{ result.append(hex); } } } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } } System.out.println("加密后:\t"+result.toString()); return result.toString(); } /* * 获取时间戳 */ public static String getTimestamp(){ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); Date date = new Date(); return sdf.format(date); } }写完这些工具类以后就可以开始写获取短信验证码类GetMessage。因为用到JSONObject所以需要导入以下几个包: 至此,短信验证码发送类就写完了。 第一次写博客,很多地方描述的不完整,还请见谅。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |