java 随机生成6位短信验证码实例代码
生成6位随机数字其实很简单,只需一行代码,具体如下:
StringverifyCode=String.valueOf(newRandom().nextInt(899999)+100000);
具体实现发送短信验证码功能,以注册为例,其实现代码如下:
这里需要用到第三方短信验证码接口,这里用到的是乐信短信验证码接口,乐信接口API文档说明(http://www.lx598.com/apitext.html),乐信java调用短信验证码接口demo(http://www.lx598.com/javaCode.html)。
//注册新用户 @Action(value="reAimcodeGetVeCode") publicvoidreAimcodeGetVeCode(){ PrintWriterout; Stringresult="验证码申请失败!请重试!"; try{ smsUnit=newSmsUnit(ConfUtil.getProperty("sys_sms_server")); if(null!=account.getACCMOB()&&!account.getACCMOB().equals("")){ account.setACCSTATUS(newBigDecimal(1));//设置使用状态未用 StringverifyCode=String .valueOf(newRandom().nextInt(899999)+100000);//生成短信验证码 account.setFSECURITYCODE(verifyCode); account.setACCCREATEDATE(newDate()); //设置验证码失效时间为1分钟 Calendarc=Calendar.getInstance(); c.add(Calendar.Minuteinhour,1); //执行短信发送 account.setFREGISTERSOURCE(fromSource); request.getSession().removeAttribute(ConstValues.WEB_SESSION_PROMOTE); AccountCriteriaac=newAccountCriteria(); ac.createCriteria().andACCMOBEqualTo(account.getACCMOB()); ListacList=newArrayList (); acList=accountService.selectByExample(ac); if(acList!=null&&acList.size()>0){ Stringcontent="您的验证码为:"+verifyCode+",该码有效期为24小时,该码只能使用一次!【短信签名】"; SendSmsReplysendSmsReply=smsUnit.sendSms(accName,accPwd,account.getACCMOB(),content,""); //调用第三方接口发送短信result=sendSmsReply.getReplyMsg()+"&" +acList.get(0).getFID()+"&" +acList.get(0).getSDKURL(); } } }catch(Exceptione){ logger.error("获取验证码失败",e); }finally{ try{ response.setContentType("text/html;charset=UTF-8"); response.setCharacterEncoding("UTF-8"); out=response.getWriter(); out.write(result); }catch(IOExceptione){ logger.error("",e); } } } //第三方短信发送接口代码: /** *发送短信 *@paramaccName乐信账号用户名 *@paramaccPwd乐信账号密码 *@paramseed当前时间格式:YYYYMMDDHHMISS例如:20130806102030 *@paramaimcodes手机号多个手机号之间英文半角逗号隔开 *@paramcontent内容后加签名 *@paramschTime定时时间格式如:2010-01-0108:00:00 *@return服务端返回的结果ok:业务id或者错误代码 */ publicstaticStringsendSms(StringaccName,StringaccPwd,Stringmobies,Stringcontent,StringschTime){ StringBuffersb=newStringBuffer("http://sdk.lx198.com/sdk/send2?"); try{ Stringseed=newSimpleDateFormat(dateFormatStr).format(newDate()); sb.append("&accName="+accName); sb.append("&seed="+seed); sb.append("&accPwd="+MD5.getMd5String(MD5.getMd5String(accPwd)+seed)); sb.append("&aimcodes="+mobies); sb.append("&schTime="+URLEncoder.encode(schTime,"UTF-8"));//空格标点符号做encode转换 sb.append("&content="+URLEncoder.encode(content,"UTF-8"));//中文做encode转换 URLurl=newURL(sb.toString()); HttpURLConnectionconnection=(HttpURLConnection)url.openConnection(); connection.setRequestMethod("POST"); BufferedReaderin=newBufferedReader(newInputStreamReader(url.openStream())); returnin.readLine(); }catch(Exceptione){ e.printStackTrace(); } returnnull; }
PS:Java随机生成四位数字的验证码
packagecom.day14string; importjava.util.Random; publicclassTest2{ publicStringgetCheckCode(){ StringZiMu="qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGJKLZXCVBNM1234567890"; Stringresult=""; Randomrandom=newRandom(); for(inti=0;i<4;i++){ intindex=random.nextInt(ZiMu.length()); charc=ZiMu.charAt(index); result+=c; } returnresult; } publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub Test2test2=newTest2(); System.out.println(test2.getCheckCode()); } }
总结
以上所述是小编给大家介绍的java随机生成6位短信验证码实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。