精华内容
下载资源
问答
  • 主要介绍了Python发送手机动态验证码代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 模拟向手机发送动态验证码

    千次阅读 2019-05-26 19:53:39
    模拟向手机发送动态验证码 开发工具与关键技术:VisualStudio C# 作者:老龙 撰写时间:2019/5/26 功能效果: 点击获取验证码的按钮后会对输入的手机号进行判断,当数据库里没有这个账号时会提示无效账号,获取...

    模拟向手机发送动态验证码

    开发工具与关键技术:VisualStudio C#
    作者:老龙
    撰写时间:2019/5/26
    

    在这里插入图片描述
    功能效果: 点击获取验证码的按钮后会对输入的手机号进行判断,当数据库里没有这个账号时会提示为无效账号,获取不了验证码。有账号时电脑会出现验证码,并且进入倒计时,60秒后可再次获取验证码。不勾选已同意按钮就不会解禁登录按钮,验证码输入不正确不能登录,输入过期验证码也不能登录,页面输入信息不完整也不能登录。
    倒计时部分:
    在这里插入图片描述

    Var timer = false;本来是用来解决计时器二次点击或者是多次点击后计时器加速执行的问题。If(timer){return};当它为true时就直接返回,不再执行下面的代码,这就解决了二次以上的点击让计时器加速的问题。因为我在第一次点击完之后就直接把获取验证码的按钮给禁用掉了,在倒计时没有结束之前就不会解开禁用,在解开禁用之后又重新给timer赋值为false,所以就不存在二次点击的问题了。
    登录按钮禁用与解禁部分:
    在这里插入图片描述
    在上面的代码里不是通过判断复选框有没有选中来让登录按钮解禁或者是禁用。而是在复选框的立即事件里判断它有没有一个空类,因为一开始按钮就处于禁用状态,当有没有时添加这个空类,让按钮解禁。当有这个空类时移除这个类,而且把按钮禁用。
    在这里插入图片描述

    展开全文
  • JAVA 实现 QQ 邮箱发送验证码功能(局限于框架) 本来想实现 QQ 登录,有域名一直没用过,还得备案,好麻烦,只能过几天再更新啦。 先把实现的发送邮箱验证码更能更新了。 老规矩,更多内容在注释山聊。 首先还是...

    JAVA 实现 QQ 邮箱发送验证码功能(不局限于框架)

    本来想实现 QQ 登录,有域名一直没用过,还得备案,好麻烦,只能过几天再更新啦。
    先把实现的发送邮箱验证码更能更新了。

    老规矩,更多内容在注释山聊。

    首先还是先放上成功的截图:

    (1)准备阶段 - 获取授权码

    授权码(这个授权码是让 JAVA 程序来登录发送者的 QQ 邮箱的,相当于登动态密码)

    获取步骤:
    点击【设置】>【账户】>【POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务】
    在这里插入图片描述

    在这里插入图片描述

    (2)加载相关 jar 包

    使用 Maven 的话,直接拷贝下面的就可以:

    		<!-- https://mvnrepository.com/artifact/javax.activation/activation -->
            <dependency>
                <groupId>javax.activation</groupId>
                <artifactId>activation</artifactId>
                <version>1.1.1</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/javax.mail/mail -->
            <dependency>
                <groupId>javax.mail</groupId>
                <artifactId>mail</artifactId>
                <version>1.4.7</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-email -->
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-email</artifactId>
                <version>1.5</version>
            </dependency>
    
    

    (3)代码编写 - 示例

    请根据提示自行修改配置

    package com.xpwi.action;
    
    import org.apache.commons.mail.SimpleEmail;
    import org.springframework.context.annotation.Scope;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    @Controller
    @Scope("prototype")
    @RequestMapping("/email")
    public class EmailValidateAction {
    
        //邮箱验证
        //*.do 的格式是 Spring MVC 拦截的一种配置,请自行修改
        @RequestMapping("/sendCode.do")
        @ResponseBody
        public int emailValidate(){
            SimpleEmail email=new SimpleEmail();//创建一个HtmlEmail实例对象
            try {
                //填写邮箱服务器,如是QQ邮箱服务器,直接用:smtp.qq.com
                email.setHostName("邮箱服务器");
                email.setCharset("utf-8");
                //设置收件人
                email.addTo("收件人邮箱地址");
                //设置发送人邮箱,和用户名
                email.setFrom("发件人邮箱地址","发件人署名(随意写)");
                //配置邮箱加授权码,相当于等于自己的邮箱
                email.setAuthentication("发送者的邮箱","发送者的授权码");
                //使用安全链接
                email.setSSLOnConnect(true); 
                //设置邮件的主题
                email.setSubject("注册验证码");
                //设置邮件的内容,自行修改动态验证码
                email.setMsg("尊敬的用户:你好!\n 注册验证码为:123444" +"\n"+"     (有效期为一分钟)");
                //发送
                email.send();
    
            }catch (Exception e){
                e.printStackTrace();
                //返回 0 表示失败
                return 0;
            }
            //返回 1 表示发送成功
            return 1;
        }
    
    }
    

    更多文章链接

    展开全文
  • 短信验证码、动态验证码

    千次阅读 多人点赞 2019-01-15 19:27:26
    短信验证码、图形验证码的快速实现。

    说明:(生成Gif、Png类型的图形验证码)

    最近两次做项目,一些功能性的代码重复的写因此非常的麻烦。因此记录一下,以防下次。

    1、功能性代码:图形绘制、验证码生成。

    1、导入别人写好的工具父类、以及需要支持的工具类。(最主要的)

    工具类已经被我导出成Jar的形式:工具类地址

    1. 父类 Captcha、两个子类 PngCaptchaGifCaptcha
      在这里插入图片描述

    2、编写一个公共的Controller请求、用于复用获取图形验证码。

      /**
    	 * @param time 
    	 * 回调多次请求的时候根据系统当前时间来进行不同的请求,防止同一时间重复进行多次请求。
    	 
    	 * 注意:将值存入session中,以便获取验证码的值,通过覆盖进行值更新。
    	 * 1.只要登录不成功即需要每次进行请求新的验证码。
    	 * 2.需要设置响应头,告诉浏览器,并且不进行缓存。
    	 * 3.session为true的时候当request不存在session,则创建一个;一般用于存、取数据。
    	 * 4.session默认为true,session为false一般用于查询数据的时候,没有session不会创建新的;
    	 */
    @RequestMapping(value = "/getGifCode.html", method = RequestMethod.GET)
    public void getGifCode(@RequestParam(required=false) String time,HttpServletResponse response,HttpServletRequest res) throws IOException {
      
        HttpSession session = res.getSession(true);		
      	// 设置响应信息
        response.setHeader("Pragma", "No-cache");		
        response.setHeader("Cache-Control", "no-cache");
        response.setDateHeader("Expires", 0);		
        response.setContentType("image/gif");			
      
        /*
         *  1.创建gif格式动画验证码 宽,高,位数。
         *  2.向客户端响应输出gif动态验证信息。
         *  3.此处可以通过实例化PngCaptcha()获取png图形验证码。
         *  4.captcha两个方法,out()输出图片、text()获取文本。
         */
        Captcha captcha = new GifCaptcha(120, 40, 5);
        captcha.out(response.getOutputStream());
      
       	// 将验证码随机产生的随机验证码信息存入Session之中。
        session.setAttribute(GlobalConstant.captcha, captcha.text());
        System.out.println("生成的验证码:"+captcha.text());
    }}
    

    3、前端获取方式

    <div style="margin-left: 10px;">
    		<img src="getGifCode.html" >
        <!-- 点击产生图片,编写JS参数为 time=Date.getTime() -->
    </div>
    

    2、短信验证码的实现

    依赖的类、依赖的jar包:

    <!-- 发送短信依赖包 -->
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
    </dependency>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.7</version>
    </dependency>
    

    额外的依赖类(导入官方下载的Demo即可):
    在这里插入图片描述

    实现接口: 使用第三方云之讯的SDK,官网地址

    配置文件:

    #测试使用
    is_test=true	
    rest_server=open.ucpaas.com
    

    实现短信验证码的工具类: 具体看官方api

    /**
     * @ClassName: SendSMSTool  
     * @Description: 主要调用 云之讯 接口发送短信工具类
     * @author Unruly  
     * @date 2018年12月28日
     */
    public class SendSMSTool {
    	
    	static AbsRestClient InstantiationRestAPI() {
    		return new JsonReqClient();
    	}
    	
    
    	public static String SendMessage(String randNum, String mobile){
    		if(StringUtils.isBlank(mobile)) {
    			return "手机号:Is a blank";
    		}
    		String sid  = "****************************";	
    		String token = "****************************";	
    		String appid ="****************************";
    		String templateid ="415648";					// 发送的短信验证码模板
    		String result=InstantiationRestAPI().sendSms(sid, token, appid, templateid, randNum, mobile, appid);
    		JSONObject json = JSONObject.parseObject(result);
    		return json.getString("msg");
    	}
    	
    }
    

    控制层处理请求方式:

    /**
    	 * 发送短信的方法
    	 * @param num 手机号
    	 * @param res 
    	 * @return 发送的状态
    	 * @throws Exception
    	 */
    @ResponseBody
    @RequestMapping(value = "/sendMessage")
    public Object getSMS(@RequestParam(name = "phone", required = true) String phone) throws Exception {
      HashMap<String, Object> map = new HashMap<>(16);
      HttpSession session = ServletTool.getSession();
      map.put(GlobalConstant.code, 1001);
      map.put(GlobalConstant.msg, "发送信息失败:请输入合法的手机号!");
      if (!StringUtils.isBlank(phone) && GlobalRegTool.phone_reg(phone)) {
        /* 随机的生成的手机验证码 */
        String phoneVercode = String.valueOf(RandomUtils.nextInt(10000, 100000));
        String sendMessage = SendSMSTool.SendMessage(phoneVercode, phone);
        map.put(GlobalConstant.code,0);
        map.put(GlobalConstant.msg, sendMessage);
        session.setAttribute(GlobalConstant.session_phone, phone);    
        // 将验证信息存入Session
        session.setAttribute(GlobalConstant.phone_code, phoneVercode);
      }
      return map;
    }
    
    展开全文
  • 安卓发送验证码倒计时效果和自动获取验证码并填充到输入框
  • vb.net——通过邮箱动态发送验证码实现完美注册

    千次阅读 热门讨论 2016-01-17 20:27:45
     平时不管我们注册哪个网站,想必大家都注意到必须使用有效的电话号码或邮箱号码,为什么呢?因为他们都要求动态发送 验证码,然后通过验证验证码的真伪,来有效避免胡乱注册的现象。  那么,在高校云平台权限的...

          【 背景】

            平时不管我们注册哪个网站,想必大家都注意到必须使用有效的电话号码或邮箱号码,为什么呢?因为他们都要求动态发送 验证码,然后通过验证验证码的真伪,来有效避免胡乱注册的现象。

            那么,在高校云平台权限的注册模块中,我们是不是也同样该实现这个功能呢!

            其实这些代码都是共用的,哪想用,直接调走就可以!

            前台代码如下:

    function CheckTelorEmail()
            {
                var userID = document.getElementById('userID').value;
                
                //管理员账户必须为邮箱和手机号
                //标识是否包含特殊字符
                var containSpecial = RegExp(/[(\ )(\~)(\!)(\)(\#)(\$)(\%)(\^)(\&)(\*)(\()(\))(\-)(\_)(\+)(\=)(\[)(\])(\{)(\})(\|)(\\)(\;)(\:)(\')(\")(\,)(\.)(\/)(\<)(\>)(\?)(\)]+/);
                //邮箱是否合法
                var emailRegex = /^(\w-*\.*)+(\w-?)+(\.\w{2,})+$/
                //检测是否为手机号
                var phoneRegex = RegExp(/^0{0,1}(13[0-9]|15[0-9]|15[0-9]|18[0-9])[0-9]{8}$/);
    
                if (containSpecial.test(userID) == false && phoneRegex.test(userID) == false) {
                    alert("管理员必须为邮箱或手机号,您输入的信息有误!");
                    return "";
                };
                $.ajax({
                    type: "post",
                    url: "/Register/SendTEmail",
                    data: { 'UserID': userID },
                    success: function (isExist) {
                        var verify = isExist[0];
                        var isSuccese = isExist[1];
                        if (isSuccese == "True") {
                            var dom = document.getElementById("identy");
                            dom.innerHTML = verify;
                        }
                        else
                        {
                            window.alert("发送失败!请重新发送!");
                        }
                    }
    
                });
    
            }
    后台代码:

     /// <summary>
            /// 默认设置发送邮件的初始值
            /// </summary>
            /// <returns></returns>
            public ActionResult SendTEmail()
            {
                //userReg_Accessor target = new userReg_Accessor(); // TODO: 初始化为适当的值  
                string smtpServer = "smtp.163.com"; // TODO: 初始化为适当的值  
                string smptport = "25"; // TODO: 初始化为适当的值  
                string userName = "13833611187@163.com"; // TODO: 初始化为适当的值  
                string pwd = "jialimin1011"; // TODO: 初始化为适当的值  
                string strFrom = "13833611187@163.com"; // TODO: 初始化为适当的值  
                string strto = Request["UserID"].ToString();
                //string strto = "**.com"; // TODO: 初始化为适当的值  
                string subj = "欢迎注册高校云平台"; // TODO: 初始化为适当的值  
                string identifycode = Str(6, true);
                string bodys = "你的验证码是" + identifycode; // TODO: 初始化为适当的值  
                bool bl = sendTheMail(smtpServer, smptport, userName, pwd, strFrom, strto, subj, bodys);
                var messages = new List<string>
                {  
                    identifycode,
                    bl.ToString()
                };
                //ViewData["messages"] = messages;
                return Json(messages, JsonRequestBehavior.AllowGet);    
                }

        其中,该方法中调用的两个方法 如下:

       1·邮件发送:

      /// <summary>
            /// 实现邮件发送的一个过程
            /// </summary>
            /// <param name="smtpserver">邮件服务器smtp.163.com表示网易邮箱服务器</param>
            /// <param name="smptport">端口号(通常网易和qq为25)</param>
            /// <param name="userName">发送端账号</param>
            /// <param name="pwd">发送端密码</param>
            /// <param name="strfrom">发送端账号</param>
            /// <param name="strto">注册的邮箱号</param>
            /// <param name="subj">邮箱的主题</param>
            /// <param name="bodys">发送的邮件正文</param>
            /// <returns></returns>
            protected bool sendTheMail(string smtpserver, string smptport, string userName, string pwd, string strfrom, string strto, string subj, string bodys)
            {
                SmtpClient _smtpClient = new SmtpClient();
                _smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式  
                _smtpClient.Host = smtpserver;//指定SMTP服务器  
                _smtpClient.Credentials = new System.Net.NetworkCredential(userName, pwd);//用户名和密码  
                MailMessage _mailMessage = new MailMessage(strfrom, strto);
                _mailMessage.Subject = subj;//主题  
                _mailMessage.Body = bodys;//内容  
                _mailMessage.BodyEncoding = System.Text.Encoding.Default;//正文编码  
                _mailMessage.IsBodyHtml = true;//设置为HTML格式  
                _mailMessage.Priority = MailPriority.High;//优先级  
    
                try
                {
                    _smtpClient.Send(_mailMessage);
                    return true;
                }
                catch (Exception e)
                {
                    throw e;
                }
            }


        2·随机生成6位验证码

    /// <summary>
            /// 生成随机字母与数字或字符
            /// </summary>
            /// <param name="Length">生成长度</param>
            /// <param name="Sleep">是否要在生成前将当前线程阻止以避免重复</param>
            /// <returns></returns>
            public string Str(int Length, bool Sleep)
            {
                if (Sleep)
                    System.Threading.Thread.Sleep(3);
                char[] Pattern = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '+' };
                string result = "";
                int n = Pattern.Length;
                System.Random random = new Random(~unchecked((int)DateTime.Now.Ticks));
                for (int i = 0; i < Length; i++)
                {
                    int rnd = random.Next(0, n);
                    result += Pattern[rnd];
    
                }
                return result;
            }

    效果图:



         通过邮箱验证 整体就是这样,期待下一篇博客《vb.net——通过手机号动态发送验证码实现完美注册》


             ——————————————————————————————————————————

    《续》:

           在实现的过程中,也通过不断的注册其它各个系统,发现一个问题:虽然有邮箱注册,但没有通过发送给邮箱验证码去注册。怎么讲呢?在通过多个系统的注册了解后,总结如下:

        可以通过邮箱和手机号注册。但如果是邮箱注册,则只是发送给邮箱一个链接,这个链接可用于激活,但不发送验证码,而至于你去不去激活没有关系,激活的目的在于验证邮箱的真伪,方便以后寻找密码;而如果是手机号注册,则是动态发送验证码验证;这两者这样设计的目的还是处于对用户的考虑,避免登录邮箱,获取验证码这样的一个过程。最终的实现效果如下:

     (注册成功界面:可邮箱激活,也可直接登录系统)


      (邮箱收到邮件内容:)



          这次的改变大概如此。总得来说,我们设计任何一样东西都是无穷无尽的,在考虑投入成本的基础上,为用户做最大的考虑。米老师说过这样一句话:我们做的任何一个系统,都要尽可能的减少用户的“学习成本”。

       

    展开全文
  • java实现发送手机验证码功能

    万次阅读 多人点赞 2018-07-04 11:03:32
    /** * * @Title:GetMessageCode * @Description:发送验证码 * @author:ヅ零碎de記憶ぷ * @Date 2018年7月4日 下午9:27:04 */ public class GetMessageCode { private static final String QUERY_PATH = ...
  • HTML5 发送验证码后倒计时 JavaScript js 短信验证码 动态码
  • 倒计时验证码动画

    2015-11-04 16:51:09
    倒计时验证码动画点击后出现5秒倒计时,但该代码只提供倒计时画面。提供发送手机信息。
  • 发送邮箱验证码

    千次阅读 2018-03-16 10:31:36
    * 邮箱验证码 * * @param userCount 邮箱账号 * @param response */ @RequestMapping("vcode") public void vcode(String userCount, HttpServletResponse response) throws IOException { ...
  • 短信发送验证码实现验证

    千次阅读 2020-08-05 22:31:37
    提交时把前台输入的验证码与Session中的验证码进行匹配 一、前期准备 短信发送一条0.0045元,可以充一块钱作为测试 使用阿里云信息服务作为第三方接口 阿里云信息服务 添加签名 添加模块 设置密钥 具体配置可...
  • 前端手机发送验证码在发送成功后120秒内禁止重复发送,基本思路都js判定的.而验证码是从后台返回的,首先一个js点击事件,点击之后动态把一个120秒倒计时计时器触发,并动态加载到点击按钮上,并且移除点击事件,当...
  • // 设置debug模式, 可以查看详细的发送 log session.setDebug(true); // 1. 创建一封邮件 MimeMessage message = new MimeMessage(session); // 2. From: 发件人 message.setFrom(new InternetAddress...
  • 发送验证码效果的实现 Send the verification code 目录 Send the verification code 效果展示: 操作: 效果展示: Axure RP9 ——发送验证码效果 操作: 1.放置元件:文本标题,文本框(并输入相应...
  • 主要介绍了Swift免费短信验证码实现及动态倒计时功能的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
  • C#实现向邮箱发送验证码

    千次阅读 2018-10-31 11:38:53
    本文以QQ邮箱例,其实其他邮箱的方法是类似的。得益于QQ邮箱的第三方客户端服务,可以让我们很轻松地在我们自己的小程序中调用QQ邮箱来进行收发邮件。当然需要进行一些设置获取授权码,请参考获取授权码的方法。 ...
  • Java 发送短信验证码

    千次阅读 2018-08-27 17:10:23
    Java 发送短信验证码给手机 发送短信验证码其实很简单,就是调用一下第三方的短信API接口,填写参数,发送请求,第三方平台会将信息发送给对方手机当中 介绍 我个人测试所使用的第三方API是“秒嘀”,理由是因为...
  • 交流QQ号:555913397有什么问题可以加群大家一起交流Abp ...使用短信验证码来替代密码,本小白也想实现这个功能,但是Abp并没有提供这样的方法,于是经过不懈努力,终于搞定了,废话多说下面上代码.1.添加通过手机号查...
  • 阿里云接口实现发送短信验证码

    千次阅读 2020-06-23 17:56:12
    阿里云后台配置短信相关1.1 开通短信服务1.2 添加模板签名1.3 创建秘钥1.4 短信需要后台授权--注意2 java--简单实现短信验证码发送2.1 引入pom依赖2.2 application.yml配置阿里AK2.3 编写阿里配置文件实体类2.4 ...
  • 代码可全复制, 发送验证码后调用 getcheckCodeTime即可。提示可根据实际需求进行更改 var InterValObj; //timer变量,控制时间 var count = 60; //间隔函数,1秒执行 var curCount;//当前剩余秒数 /** * 获取...
  • 先上两张图,再解释 运行原理: ...过了15秒以后,验证码再次刷新,并打印输出,这样就实现了动态过期,原理就是到某个时间我...这里每次点击按钮都需要使用一个方法,难点在于全局变量global的使用,发送验证码不难,我之
  • 七牛云发送短信验证码

    千次阅读 2019-08-30 22:00:50
    在网上看了七牛的开发者文档,一脸茫然,百度了很久,发现网上阿里云的发送短信,但对于七牛的短信验证码没有具体的描述,困扰了一下午。最终在公司大佬和GitHub的帮助下,实现了该功能。 第一,首先需要导入七牛的...
  • java实现短信验证码发送 由于我们使用第三方平台进行验证码发送,所以首先,我们要在一个平台进行注册。 在这里我选择是秒嘀科技,因为新人注册会赠送十元,足够测试使用了。 注册完成后,我们需要获取自己对应的...
  • Web页面动态验证码

    千次阅读 2018-02-08 18:51:42
    结果如下: ...动态验证码实现首先得有一个算法。 定义一个数组用来存放生成的验证码 String ver[] = new String[62]; 第一种,定义一个字符串数组,由0-9,a-z,A-Z组成,共62 public void in...
  • 目标: 使用postman完成移动端的会员注册功能。 背景: ... ...[ uat_AutoTest ] 尊敬的用户,您的验证码:073874,本验证码有效时间 30 分钟,请勿告知他人,如下: ...1.发送验证码请求。 2....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,507
精华内容 7,402
关键字:

为什么发送验证码点不动