- 浏览: 68159 次
- 来自: 北京
文章分类
最新评论
-
love_miaohong:
tomcat工作原理(第二章)A Simple Servlet Container -
dreamkyh:
好犀利的测试驱动啊,vo我还是不太明白,能帮忙解释下嘛
测试驱动开发(第二节)
package com.test;
import java.util.LinkedList;
import java.util.Random;
/**
* 字母和数字混合的四位验证码
* 生成器
*
* @author ***
* @version V1.0
*
* @since 2011-11-23
*/
public class CheckCodeGenUtil {
/**
*
* 功能描述:
*获取四位验证码
* @return
*
* @author ***
*
* @since 2011-11-23
*
* @update:[变更日期YYYY-MM-DD][更改人姓名][变更描述]
*/
public static String getContent() {
String content = "";
for(int i=0;i <4;i++){
content+=getChar();
try {
Thread.sleep(new Random().nextInt(10)+10);//休眠以控制字符的重复问题
} catch (InterruptedException e) {
e.printStackTrace();
}
}
return content;
}
/**
*
* 功能描述:
*获取随机字符
* @return
*
* @author ***
*
* @since 2011-11-23
*
* @update:[变更日期YYYY-MM-DD][更改人姓名][变更描述]
*/
public static char getChar(){
Random random=new Random();
char ch= '0';
LinkedList ls=new LinkedList();
for(int i=0;i <10;i++){//0-9
ls.add(String.valueOf(48+i));
}
for(int i=0;i <26;i++){//A-Z
ls.add(String.valueOf(65+i));
}
for(int i=0;i <26;i++){//a-z
ls.add(String.valueOf(97+i));
}
int index=random.nextInt(ls.size());
if(index> (ls.size()-1)){
index=ls.size()-1;
}
ch=(char)Integer.parseInt(String.valueOf(ls.get(index)));
return ch;
}
/**
*
* 功能描述:获取指定位数由数字组成的字符串
*
* @return
*
* @author ***
*
* @since 2011-12-9
*
* @update:[变更日期YYYY-MM-DD][更改人姓名][变更描述]
*/
public static String getNumString(int size) {
String content = Math.random()+"";
int strlen = content.length();
content = content.substring(strlen-(size+1),strlen-1);
return content;
}
public static void main(String[] args) {
//
String content = getNumString(6);
System.out.println(content);
}
}
import java.util.LinkedList;
import java.util.Random;
/**
* 字母和数字混合的四位验证码
* 生成器
*
* @author ***
* @version V1.0
*
* @since 2011-11-23
*/
public class CheckCodeGenUtil {
/**
*
* 功能描述:
*获取四位验证码
* @return
*
* @author ***
*
* @since 2011-11-23
*
* @update:[变更日期YYYY-MM-DD][更改人姓名][变更描述]
*/
public static String getContent() {
String content = "";
for(int i=0;i <4;i++){
content+=getChar();
try {
Thread.sleep(new Random().nextInt(10)+10);//休眠以控制字符的重复问题
} catch (InterruptedException e) {
e.printStackTrace();
}
}
return content;
}
/**
*
* 功能描述:
*获取随机字符
* @return
*
* @author ***
*
* @since 2011-11-23
*
* @update:[变更日期YYYY-MM-DD][更改人姓名][变更描述]
*/
public static char getChar(){
Random random=new Random();
char ch= '0';
LinkedList ls=new LinkedList();
for(int i=0;i <10;i++){//0-9
ls.add(String.valueOf(48+i));
}
for(int i=0;i <26;i++){//A-Z
ls.add(String.valueOf(65+i));
}
for(int i=0;i <26;i++){//a-z
ls.add(String.valueOf(97+i));
}
int index=random.nextInt(ls.size());
if(index> (ls.size()-1)){
index=ls.size()-1;
}
ch=(char)Integer.parseInt(String.valueOf(ls.get(index)));
return ch;
}
/**
*
* 功能描述:获取指定位数由数字组成的字符串
*
* @return
*
* @author ***
*
* @since 2011-12-9
*
* @update:[变更日期YYYY-MM-DD][更改人姓名][变更描述]
*/
public static String getNumString(int size) {
String content = Math.random()+"";
int strlen = content.length();
content = content.substring(strlen-(size+1),strlen-1);
return content;
}
public static void main(String[] args) {
//
String content = getNumString(6);
System.out.println(content);
}
}
发表评论
-
代码的执行顺序问题
2013-04-10 16:10 0package access.local; public c ... -
关于集合对对象的操作
2013-04-09 17:40 01、Set是中是存储的具体的对象: 2、HashMap: l ... -
深入Java虚拟机
2012-11-14 18:04 0本书目录 1、Java体系结构介绍 2、平台无关 3、安全 4 ... -
向文件末尾追加内容
2012-11-05 17:15 0public static void main(String[ ... -
开发中遇到的小问题
2012-10-29 14:18 01、ResultSet获取结果集之后,结果集的下标从1开始,而 ... -
内部类
2012-10-17 15:01 0如果在一个类内包含一个内部类的话,那么在编译完成之后,会出现一 ... -
关于map的一点小经历
2012-09-27 10:58 0map里对key值相同的元素,计算为一个元素,且后面赋值的元素 ... -
Calendar类获取指定时间段内的天数
2012-09-26 17:14 0public static StringBuffer get ... -
Java中常见问题
2012-09-18 19:50 0实例一: public static void main(S ... -
java多线程
2012-09-11 21:06 0多线程的概念: 1、Java中多线程的实现: . 继承T ... -
sleep和wait的区别
2012-09-07 23:02 01、这两个方法来自不同的类分别是,sleep来自Thread类 ... -
Java 基础知识
2012-08-29 23:58 01、 public static void main( ... -
需要看的文章
2012-07-30 17:06 0http://www.iteye.com/topic/1123 ... -
面试题目汇总
2012-07-30 14:22 01、项目开发流程 2、项目相关文档 3、大并发量是怎么处理 ... -
ServletOutputStream
2012-07-13 10:44 0API对象的说明这一部分 ... -
给自己的项目打包
2012-07-11 14:31 0用MyExclipse自带的export功能,就可以直接给项目 ... -
导出Javadoc文档
2012-07-04 14:09 0在导出的过程中会出现编码错误的提示,需要加入下列代码: ... -
Json字符串与List、map等互相转换
2012-05-24 15:22 0package com.cn.zrwt.util; impo ... -
用Java模拟客户端的请求
2012-05-24 11:49 0private static void post(String ... -
自己项目中用到的从ftp服务器上下载文件,并将下载的txt文件解析保存到数据库
2012-05-23 17:02 0解析文本文件保存到数 ...
相关推荐
为了增加安全性,通常会混合大小写字母和数字,并确保生成的字符串具有指定的长度。 3. **文字渲染**:在`Graphics2D`对象上绘制文本时,可以调整字体、大小和颜色。为了使字符看起来随机偏移,可以通过改变绘制时...
3. **混合数字和字母**:可以结合生成数字和字母的方法,随机选择生成数字还是字母。 4. **控制生成长度**:通过修改循环次数,可以灵活地控制生成的字母串长度。 #### 五、总结 通过本篇文章的学习,相信您已经...
验证码通常由字母、数字或两者混合组成,设计的目的在于只有人类能够准确地识别和输入,而机器则难以解析。 描述中同样强调了"java生成图片验证码",这意味着我们将专注于Java实现的具体步骤和技术。 标签"java ...
验证码是网络应用中常见的一种安全机制,用于防止自动...总的来说,Java生成随机验证码的过程涵盖了随机数生成、字符串处理、图像处理等多个编程领域。通过合理的设计和实现,可以创建出既安全又用户友好的验证码系统。
- **生成随机字符串**:首先,我们需要生成一个随机的字符串作为验证码内容,通常包含4-6个字符,可以是字母、数字或两者混合。 - **绘制图像**:使用Java的`Graphics2D`类在内存中创建一个新的GIF图像,并在其上...
在IT领域,验证码(CAPTCHA)是一...在提供的压缩包文件“图片验证码生成”中,可能包含了实现上述功能的源代码示例,你可以通过学习和理解这些代码,加深对Java生成图片验证码的理解,并根据实际需求进行调整和优化。
验证码的主要目的是验证用户是人而不是机器,通过让用户提供显示的一串随机字符(数字和字母混合)来达到这一目的。在Servlet中实现动态验证码,我们需要完成以下步骤: 1. **生成随机字符串**: 首先,我们需要...
自己写的验证码,不仅能够实现加干扰条,还能实现字符倾斜,是数字和字母的混合
csdn上三种java验证码生成...2. 数字、字母混合验证码,扭曲 3. 汉字验证码,噪点,未加扭曲(未使用字符集,随机生成汉字) 4. 谷歌开源验证码 只对第一种方法写了验证,后三种方法只有验证图片生成,验证方法同一。
- 验证码通常由一组随机的字母或数字组成,可以是纯数字,也可以是字母数字混合。在Java中,可以使用`Random`类来生成随机整数或字符,然后通过映射表将这些数字或整数转换为对应的字符。 2. **图形化验证码**: ...
可以设置字符串长度,字符集(包括大小写字母和数字)。 2. **绘制验证码图像**:使用Java的`Graphics2D` API在`BufferedImage`上绘制验证码文本。可以添加扭曲、旋转、噪声等效果,增加机器识别难度。 3. **颜色...
本篇文章将详细介绍如何使用Java来创建一个带有条纹效果的字母和数字混合的随机验证码。 首先,我们需要理解验证码的基本构成。验证码通常由一系列随机的字符(包括字母和数字)组成,这些字符排列成特定的长度,并...
1. **随机数生成**:验证码通常由一组随机生成的字符组成,可以是数字、字母或者是两者的混合。Java中的`Random`类可以用于生成随机数,然后结合字符集(如ASCII或Unicode)来得到随机字符。 2. **图像处理**:Java...
为了增加复杂性,可以将数字和字母混合在一起。 3. **混淆和扭曲**: 验证码的可读性对于人类来说应该是容易的,但对于机器来说应该困难。在Java中,我们可以使用图形库,如Java2D,来绘制扭曲的文本。通过改变...
在Java编程语言中,生成验证码是一项常见的安全措施,主要用于防止自动化程序(如机器人)非法操作。验证码的主要目的是确保用户是真实的人,而非机器。这里我们将深入探讨三种常见的验证码生成方式:图片验证码、...
验证码通常由一组随机字符组成,可以是字母、数字或两者混合。在Java中,我们可以使用`java.util.Random`类和`Character`类来生成这些随机字符。首先,定义一个字符串包含所有可能的字符,然后通过随机索引来选取...
在Java中,我们可以使用`java.util.Random`类生成随机数,结合`Character`类来获取随机的字母和数字。通常,一个简单的验证码包含4到6位的字符,既包括大小写字母也包括数字。以下是一个简单的示例代码: ```java ...
在Java中,生成验证码通常涉及到以下几个步骤: 1. **生成随机字符串**:首先,系统会生成一个随机字符串,长度可以根据需求设定,一般为4-6位。字符串可以包含数字、字母或者两者的组合。 2. **扭曲图像**:为了...
- **数字与字母混合**:混合使用数字和字母,增加破解的难度。 - **噪声元素**:添加随机的线条或点,进一步干扰自动化识别。 在标签中提到的"源码",意味着博客可能提供了具体的Java代码示例,帮助读者理解验证码...
总的来说,Java生成验证码涉及到图像处理、随机数生成和字符混淆等技术。理解这些基本概念并能够实现一个自定义的验证码生成器是每个Java开发者应具备的技能之一。通过不断优化验证码的设计,可以有效防止自动化攻击...