2 everyone happy everyone_happy 于 2016.05.11 17:53 提问

怎么判断验证码之前已经生成过??求解答

不要使用将已经生成的验证码和刚刷新出来的验证码进行匹配,这方法不是很好,有没有其他方法解决,确保之前没有生成过一样的验证码

5个回答

caozhy
caozhy   Ds   Rxr 2016.05.11 21:37

除非你把生成过的记录下来,或者按照顺序生成,否则没法判断。但是验证码没有必要这么做,只要是充分随机的就可以。

caozhy
caozhy 回复everyone_happy: 根据香农的理论,这根本不可能办到。
大约 2 年之前 回复
everyone_happy
everyone_happy caozhy 谢了
大约 2 年之前 回复
everyone_happy
everyone_happy 回复caozhy: 我这边是这个需求,好像有什么公式可以用,但是我自己不清楚
大约 2 年之前 回复
everyone_happy
everyone_happy 比如6位的数字+字母的验证码,要尽可能保证不出现重复,如果使用随机函数去生成,那么出现重复的可能性还是比较高的,我想要的是尽可能把这个重复生成的概率变小
大约 2 年之前 回复
mazegong
mazegong   2016.05.12 15:27

这个验证码就是为了防止恶意注册的,其实第一次或者第多少次都一样也是没有关系的。而且已经生成的验证码和刚刷出来的验证码是一样的概率是很小很小的。

GHSYue
GHSYue   2016.05.12 11:37

将新生成的和记录下来的比对即可,但需要维护记录下来的数据,设定时间值,将超过时间的字段删除

u012216727
u012216727   Ds   Rxr 2016.05.11 18:05

这个验证码就是为了防止恶意注册的,其实第一次或者第多少次都一样也是没有关系的。而且已经生成的验证码和刚刷出来的验证码是一样的概率是很小很小的。

u012216727
u012216727 还有数字的你自己搜一下
大约 2 年之前 回复
u012216727
u012216727 这里的链接你点击进去看看:http://www.chi2ko.com/tool/CJK.htm
大约 2 年之前 回复
u012216727
u012216727 也就是常用的字符是用一种码表来表示的,这个码表可以在网上搜到的
大约 2 年之前 回复
u012216727
u012216727 验证码用的是另一种码表的,你可以查一下,根据这个码表的范围来随机生成的验证码几乎是不会重复的,也就是说重复率可以看做是零的
大约 2 年之前 回复
everyone_happy
everyone_happy 使用手机接收这个验证码来进行验证,在一定范围内要尽量确保验证码不出现重复的,毕竟验证码刷新次数多了一定会出现重复,有没有别的方法或者公式判断验证码是否有重复出现呢
大约 2 年之前 回复
havedream_one
havedream_one   2016.05.11 20:34

指定第一个字符,第一次从[0-5]中生成,第二次从[6-9]中生成,后面的随机化

sinat_16921689
sinat_16921689 这样重复几率不是更大?
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
验证码生成程序,包括成语验证码
CheckImgServlet.java package cn.itcast.estore.web.servlet; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.image.BufferedImage; imp
文字验证码怎么在提交是判断 这里给出了验证码(做过的帮忙看下)
Response.Expires = -9999 Response.AddHeader "pragma", "no-cache" Response.AddHeader "cache-ctrol", "no-cache" Response.ContentType = "AspJpeg\Samples\Bin" '组件文件地址 '生成安全码的函数  function make_randomize(m
Linux 回溯之前输入过的命令
用过Matlab的朋友都知道,输入命令的第一个字母,然后按向上的箭头可以返回到之前您输入过的包含该字母的命令,这种便捷的回溯方式在Linxu中也可以使用。 通过下面简单的设置,就可以方便你的操作,何乐而不为那? $ vim ~/.inputrc 将以下命令输入到打开的文件中,并且保存退出 # Matlab like Bash history "
生成验证码并判断用户是否输入正确
现在很多的网站都有输入验证码的功能,那么我们看看这个是怎么做的! 功能显示就不多说了,直接正题: 一,生成验证码部分 ①新建aspx页面,前台不需要写任何的东西 ②在后台编辑代码:定义生成图片的方法CreateCheckCodeImage(string code),需要参数;生成随机验证码GenerateCheckCode()。 #region 生成图片
生成验证码,并进行验证(四位随机数字)
随机生成四位随机的验证码using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using 
Android 如何判断 ViewStub 是否inflate
if(viewStub.getParent()!=null) { // viewStub.inflate(); }else { //已经执行过 inflate() }
判断用户登录和注册验证
登录验证,判断用户名和密码是否匹配,匹配则成功,否则失败
论判断一个 URL 是否已经被爬虫处理
待续。。。
JS生成验证码并判断加刷新
html> meta charset="UTF-8"> title>JS生成验证码title> style type="text/css"> .code { /* background-image: url(code.jpg);*//*这里用一张本地图片就OK了*/ background-color: aquamarine; font-fami
php生成验证码、后台验证方法
1、yanzheng.class.php: <?php header('content-type:text/html;charset=utf-8'); session_start(); class Chptcha{ //画布宽度 private $width=60; //画布高度 private $height=28; //验证码字符长度 private $chars=4;