我们在开发用户登录功能的验证用时候,总是码作会被要求加一个验证码的功能!那么,为什么要加这个验证码?验证用验证码有什么作用?常见的验证码有哪些? 
验证码就是为了增强网站的安全性,防止机器暴力破解。码作验证码一般都会设置为歪歪扭扭的验证用图片,这样做的码作目的也是为了增加机器识别的难度。 机器一般会通过枚举法进行匹配验证码,验证用枚举法是码作利用计算机运算速度快、精确度高的b2b信息网验证用特点,对要解决问题的码作所有可能情况,一个不漏地进行检验,验证用从中找出符合要求的码作答案,因此枚举法是验证用通过牺牲时间来换取答案的全面性。 为了防止机器暴力破解,码作验证码一般会有一个过期时间,验证用并且每个验证码只能被使用一次。 设置验证码有效时长: redisService.setCacheObject(verifyKey, verifyCode, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES); 每次使用验证码后删除redis: private void checkCode(String code, String uuid) throws ValidateCodeException { if (StringUtils.isEmpty(code)) { throw new ValidateCodeException("图片验证码不能为空"); } if (StringUtils.isEmpty(uuid)) { throw new ValidateCodeException("图片验证码已失效"); } String verifyKey = Constants.CAPTCHA_CODE_KEY + uuid; String captcha = redisService.getCacheObject(verifyKey); redisService.deleteObject(verifyKey); } IE浏览器下使用GET发送请求时,如果两次请求的地址和参数相同,在不刷新页面的情况下,浏览器会缓存第一次请求的内容,服务端更新后浏览器仍然显示第一次的香港云服务器内容。这也就是为什么我们总会看到验证码请求地址上会增加一个随机数的原因。 https://ip:port?getCode?random = new Date().getTime(); 常见的验证码: 四位数字,随机的数字字符串,最原始的验证码,验证作用几乎为零。 随机数字+字母及干扰像素的图片。 滑动拼图(这种方式完全是由前端完成的)。 本文转载自微信公众号「Java旅途」,可以通过以下二维码关注。转载本文请联系Java旅途公众号。  b2b供应网 |