扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这篇文章主要讲解了使用Java redis实现发送手机验证码功能的方法,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
目前创新互联公司已为近1000家的企业提供了网站建设、域名、雅安服务器托管、网站改版维护、企业网站设计、定陶网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。要求:
1、输入手机号,点击发送后随机生成6位数字码,2分钟有效
2、输入验证码,点击验证,返回成功或失败
3、每个手机号每天只能输入3次
代码如下
import redis.clients.jedis.Jedis; import java.util.Random; public class ValidationTest { public static void main(String[] args) { //getValidation("15005076571"); //checkValidation("769897","15005076571"); } static void getValidation(String tel) { //主机、端口 Jedis jedis = new Jedis("myhost", 6379); //密码 jedis.auth("mypassword"); try { //获取电话号码 String phoneNo = tel; //本人用1库进行测试 jedis.select(1); String countKey = phoneNo + ":count"; String codeKey = phoneNo + ":code"; //获取指定的电话号码发送的验证码次数 String cnt = jedis.get(countKey); //对次数进行判断 if (cnt == null) { //没有发送过验证码 jedis.setex(countKey, 60 * 60 * 24, "1"); //发送验证码,假设生成的验证码 StringBuffer code = new StringBuffer(); for (int i = 0; i < 6; i++) { code.append(new Random().nextInt(10)); } System.out.println("code:" + code); //缓存中添加验证码 jedis.setex(codeKey, 60 * 2, code.toString()); } else { if (Integer.parseInt(cnt) < 3) { //发送验证码,假设生成的验证码 StringBuffer code = new StringBuffer(); for (int i = 0; i < 6; i++) { code.append(new Random().nextInt(10)); } System.out.println("code:" + code); //缓存中添加验证码 jedis.setex(codeKey, 60 * 2, code.toString()); //递增手机发送数量 jedis.incr(countKey); } else { //返回超出3次,禁止发送 System.out.println("超出3次,禁止发送"); } } } catch (Exception e) { //这边其实是需要回滚下redis e.printStackTrace(); } finally { //关闭redis if (jedis != null) { jedis.close(); } } } static void checkValidation(String code, String tel) { Jedis jedis = null; try { jedis = new Jedis("myhost", 6379); //密码 jedis.auth("mypassword"); jedis.select(1); String codeKey = tel + ":code"; String validation = jedis.get(codeKey); if (validation == null) { System.out.println("验证码未发送或者失效"); } else { if (validation.equals(code)) { System.out.println("验证成功"); } else { System.out.println("验证失败"); } } } catch (Exception e) { e.printStackTrace(); } finally { if (jedis != null) { jedis.close(); } } } }
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流