- 浏览: 128597 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (165)
- 数据库 (45)
- 架构 (0)
- java web前端+框架 (9)
- java web后端+框架 (56)
- Eclipse插件 (1)
- 解题思路 (2)
- Eclipse (2)
- linux (6)
- jquery (4)
- 正则 (3)
- jsp (1)
- javascript (8)
- oracle (39)
- 生活 (1)
- weblogic (5)
- tomcat (3)
- Jrebel (1)
- powerdesigner (1)
- svn (1)
- log4j (1)
- IDE (1)
- POI (2)
- jvm (2)
- ssh (1)
- http (1)
- notepad++ (2)
- 润乾 (1)
- 设计模式 (0)
- 实用类Utils (2)
- 算法 (1)
- xml (1)
- 实用类 (2)
最新评论
public static String getCharAndNumr(int length)
{
StringBuffer buff = new StringBuffer();
int index = 0;
for (int i = 0; i < length; i++) {
//char c = 'a';
int random = (int) (Math.random() * 1000);
if (i > 3) {
index = random % 3;
} else {
index = i;
}
switch (index) {
case 0:
buff.append((char) (97 + random % 26));
break;
case 1:
buff.append((char) (65 + random % 26));
break;
case 2:
buff.append((char) (48 + random % 10));
break;
}
}
String before = buff.toString();
System.out.println("before=" + before);
// 手机验证码过滤1Il0o等几个难以区分的字符
String after = before.replace("1", "3")//
.replace("I", "J")//
.replace("l", "m")//
.replace("0", "2")//
.replace("o", "p");
System.out.println(" after=" + after);
return buff.toString();
}
{
StringBuffer buff = new StringBuffer();
int index = 0;
for (int i = 0; i < length; i++) {
//char c = 'a';
int random = (int) (Math.random() * 1000);
if (i > 3) {
index = random % 3;
} else {
index = i;
}
switch (index) {
case 0:
buff.append((char) (97 + random % 26));
break;
case 1:
buff.append((char) (65 + random % 26));
break;
case 2:
buff.append((char) (48 + random % 10));
break;
}
}
String before = buff.toString();
System.out.println("before=" + before);
// 手机验证码过滤1Il0o等几个难以区分的字符
String after = before.replace("1", "3")//
.replace("I", "J")//
.replace("l", "m")//
.replace("0", "2")//
.replace("o", "p");
System.out.println(" after=" + after);
return buff.toString();
}
发表评论
-
eclipse java代码格式化 javaformatter20150123.zip
2015-01-23 11:30 705eclipse java代码格式化 javaformatter ... -
List to Map
2015-01-21 17:22 477/** * <p>将List变为Map</p ... -
读取access工具类-ReadAccessUtil2
2015-01-06 13:52 546import com.healthmarketscience. ... -
ParameterizedType获取java泛型参数类型
2014-11-14 15:15 696ParameterizedType获取java泛型参数类型 ... -
分页帮助类-oracle-java
2014-10-09 17:46 456/** * 分页帮助类 * * @author ver ... -
java自动实例化List AutoArrayList
2014-07-21 15:51 734import java.util.ArrayList; p ... -
单一登录过滤器
2014-06-20 17:13 394/** * 单一登录过滤器 * * @author v ... -
正则 java 查找 打印 所有匹配项
2014-06-18 11:26 634package com.test.regex; import ... -
第3方包读取Access
2014-05-26 16:07 659package com.test; import java. ... -
多线程加签验签例子.zip
2014-05-26 16:08 508多线程加签验签例子.zip -
DateTimeUtils
2014-05-26 16:08 644import java.text.DateFormat; im ... -
listToMap
2014-05-26 16:09 434/** * List实用类 * * @author v ... -
JdbcTemplateRowMapper
2015-05-19 15:44 572import java.lang.reflect.Constr ... -
KeyValuePair2
2015-05-19 15:44 504/** * 键值对 * * @author verno ... -
OrderUtil -排序工具
2014-05-22 09:35 649/** * 排序工具 * * @author vern ... -
ZipUtils
2014-05-22 09:35 441import java.io.BufferedOutputSt ... -
TimerUtils
2014-05-22 09:34 474import org.slf4j.Logger; import ... -
Excel View 4 Spring
2014-05-22 09:29 335Excel View 4 Spring @RequestMa ... -
DOMUtils xml操作实用类
2014-04-07 21:41 801/* * Copyright 2001-2004 The A ... -
ConnUtils2程序耗时输出 oracle.sql.Clob类型转换成String类型
2014-03-29 10:00 678package com.achievo.ems.web.ser ...
相关推荐
总的来说,Java生成验证码是一个结合了数学随机性、图像处理和安全性考量的过程。通过学习和使用`kaptcha`或其他验证码生成库,开发者能够快速地在自己的项目中实现这一功能。同时,理解和实现验证码的生成也能加深...
本笔记将详细探讨如何使用Servlet来生成验证码。 一、验证码的原理与作用 验证码的主要目的是区分人类用户和自动化程序,通过要求用户输入图片上的文字或者完成简单的数学问题,来验证其为真实的人类。这有助于防止...
在这个例子中,`VERIFY_CODES` 变量包含了用于生成验证码的所有可能字符,它只包含数字2到9以及大写字母A到Z,去除了容易混淆的1、0、i和o。 2. **创建验证码类**: `Verify` 类用于存储验证码的信息,包括一个...
在.NET框架中,生成验证码是一项常见的安全功能,用于防止自动化的机器人或恶意脚本进行非法操作,例如防止垃圾邮件、多次尝试登录等。本篇将详细介绍如何使用C#语言在ASP.NET环境中创建验证码,以及提供的三种不同...
本文主要探讨如何使用Servlet技术来模仿CSDN网站的动态验证码生成过程,其中包括数字和字母的组合,以及加减乘三种运算的实现。 首先,我们要理解Servlet的原理。Servlet是Java EE中的一种服务器端组件,用于扩展...
1. **随机数生成**:验证码通常由随机数字或字母组成。VB提供了`Rnd`函数来生成随机数。通过设定种子(如当前时间)确保每次运行时生成不同的序列,增加验证码的不可预测性。 2. **字符串操作**:生成的随机数需要...
在实际开发中,我们还可以使用现有的库或服务来生成验证码,例如Python的`PIL`库可以用于图像处理,`captcha`库则提供了完整的验证码生成解决方案。对于Web应用,还可以使用Google的`reCAPTCHA`服务,它提供了一种更...
生成验证码的步骤通常包括以下几个部分: 1. **随机数生成**:首先,系统需要生成一个随机数,这个数的位数就是验证码的位数。为了确保随机性,可以使用加密库提供的强随机数生成器。 2. **字符集定义**:根据...
总之,Java生成验证码是一个结合了数学随机性、图像处理和安全策略的综合性任务。通过学习和理解`ValiImgServlet.java`和`login.jsp`,开发者可以掌握基础的验证码实现,并在此基础上扩展出更多定制化和高级的验证...
动态生成验证码的技术不断演进,以应对越来越强大的计算机视觉和深度学习技术。例如,引入时间戳确保每个验证码只能使用一次(一次性验证码),或者使用更复杂的数学问题(如计算简单算术题)代替字符验证码(数学...
总之,JavaScript生成验证码是一种结合了数学随机性、图像处理和用户交互的技术,它在防止自动化的恶意行为中起着重要作用。通过理解这一过程,开发者可以更好地构建和优化他们的网站安全措施。
在Python编程语言中,有多种第三方模块可以帮助开发者快速、高效地生成验证码。本篇文章将详细探讨“python验证码生成第三方模块”这一主题,包括其基本原理、常用库以及如何在实际项目中应用。 一、验证码的基本...
在.NET框架中,生成验证码是一项常见的安全功能,用于防止自动化的机器人或恶意脚本进行非法操作,例如批量注册、恶意登录等。验证码的生成过程涉及图像处理、随机数生成、字符编码等多个技术领域。以下是对.NET...
本篇文章将详细探讨一个名为"Go-Golang验证码生成库"的工具,它支持多种类型的验证码,包括数字、字母、算术以及音频和数字字母组合。 首先,验证码生成库是Web应用中防止机器自动化攻击的重要工具。这个Go库为...
随着人工智能和机器学习的进步,传统的验证码如数字字母组合的CAPTCHA已经逐渐被更复杂的验证码所取代。滑动验证码、计算验证码以及滑块验证码都是为了适应这一变化而产生的。同时,未来验证码可能会更多地结合用户...
在前端,我们可以使用JavaScript或者AJAX来实现与后端的交互,当用户点击生成验证码时,发送请求获取验证码图片,同时将验证码值存储到页面的隐藏字段中。在提交表单时,将用户输入的验证码与服务器端Session中存储...
验证码通常由随机生成的一串字符组成,这些字符可能是字母、数字,有时还包含特殊符号。字符的排列方式、颜色、大小、角度以及背景都设计得让计算机难以自动解析,但对人类来说相对容易辨认。这样可以有效阻挡那些...
总之,Java随机生成手机短信验证码的方法结合了数学运算(如随机数生成和浮点数转换)与字符串操作(如字符提取和字符串拼接)。这种方法灵活且可定制,可以根据需求调整验证码的长度和字符类型。在实际应用中,为了...
这个Action将调用上面的`CaptchaGenerator`类来生成验证码图像,并将其作为HTTP响应的图像内容返回。 5. **视图渲染**: 在需要显示验证码的视图中,可以使用HTML图像元素指向刚才创建的Action。例如,`(...
总结一下,JSP生成验证码的方法多种多样,可以根据需求和安全性要求选择合适的方式。无论是简单的文本验证码还是复杂的图形验证,都需要注意平衡用户体验和安全防护。同时,随着技术的发展,验证码也需要不断进化以...