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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。