`
angkorpeach
  • 浏览: 121923 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JAVA验证码原理及实现

阅读更多

不得不承认,网络确实是个好东西,只要在google或百度上搜索一下“java验证码”,就可以找到无数实现代码,但却很少有文章很仔细的讲解到底是如何实现验证码的生成的,比如现在要自己写一个生成验证码的java类,首先要想到什么,然后想到什么,需要用到java API里的哪些类及其方法,等等。就算在在搜索条件中加上“原理”二字,能搜到的相关的文献也相当的少!或许是网上那些写得出代码的人觉得这个原理很简单,根本就不用多讲,只要研读他们写的代码就可以学会了,但是我属于那种很容易思维定势的人,只要看了别人的代码,我就会很容易跟着别人的思维走,自己就完全没想法了。又或许是大家都觉得网上既然这么多,又何必自己去写,索性干脆不去了解其原理。我就是这样。我以前也工作过,那时候为了赶项目,需要验证码的时候就直接去网上copy了一分,改一下,然后交差,那时候似乎还洋洋自得,因为不仅完成了任务还潜移默化的认为是自己能力不错,感觉自己很了不起。直到有一天在研究生院里看到一位师兄做毕业论文的时候,发现他们要做一个东西,并不是去网上直接看代码,而是去先去找一些与自己要做的东西相关的实现原理方面的书,然后自己动手写代码。他们的行为提醒了我,我也是马上要读研的人,不能再想以前一样靠着CTRL+CCTRL+V混日子了,否则自己永远是一个“半路出家的和尚”,被人小视,找不到好工作。

由于种种原因,我决定这次自己尝试一下写一个生成验证码的类,不管好不好,至少自己努力了。也就是在写这个代码的过程中,我才发现,虽然工作了两年,一直在写java程序,但是事实上自己基础是如此的差!!!希望自己能从写这个小东西开始,能改变自己对待研发的态度和对待学习的态度,从而让自己不断进步!

代码这里就补贴了,以附件的形式上传。

分享到:
评论
1 楼 angkorpeach 2011-07-18  
纠正代码中的一个错误,之前VerificationCode.java文件中有一个方法
private int getRandomNumber(int minRange,int maxRange){
	Random random = new Random((long)minRange);
	int num = random.nextInt(maxRange);
	return num;
}


应该改成:
private int getRandomNumber(int minRange,int maxRange){
	Random random = new Random();
	int num = random.nextInt(maxRange - minRange);
	return num + minRange;
}


原因是:这次再查阅了API的时候我才明白 new Random((long seed) 并不是在一个基数上产生随机数,要产生两个数之间的随机数应该采用我修改后的方法。

相关推荐

    Java验证码的实现

    总的来说,Java验证码的实现涉及到Java图形处理、Web编程以及安全策略等多个方面的知识,是Java Web开发中一个实用且重要的技能。通过实践,你可以更好地理解和掌握这些技术,并能根据实际需求进行扩展和优化。

    java实现验证码

    在Java中实现验证码涉及到图像处理、随机数生成、字体操作等多个方面的知识。本文将深入探讨如何使用Java来创建一个简单的图形验证码。 首先,我们需要了解验证码的基本原理。验证码通常包含一串随机生成的字符,...

    Java实现点击文字验证码与拖动/滑动图片验证码(源码+demo+单元测试+实现思路)

    3.1.JAVA掌握AWT的BufferedImage、Graphics2D、Font;Redis;图片生成随机位置 随机中文文字、随机抠图、拼图都只需要用到BufferedImage和Graphics2D。 3.2.前端熟悉点击事件,根据点击事件的坐标位置、图片的位置...

    java验证码及刷新

    总的来说,"java验证码及刷新"项目是一个基础但实用的Web开发实践,它展示了如何利用Java技术来实现验证码的生成与刷新功能,对于理解和掌握Java Web开发有很好的学习价值。通过这样的实践,开发者可以更好地理解JSP...

    java验证码的源码

    在实际使用中,Java验证码的实现步骤大致如下: 1. 引入Kaptcha库,例如通过Maven或Gradle将其添加为依赖。 2. 配置Kaptcha生成器,设置验证码的样式、长度、字体等属性。 3. 在需要生成验证码的地方,调用Kaptcha...

    JAVA识别验证码,支持变形,扭曲,斜线,噪点,支持自己训练

    在JAVA平台上,我们可以利用OCR(Optical Character Recognition,光学字符识别)技术来实现对各种复杂验证码的识别,包括变形、扭曲、斜线干扰以及含有噪点的验证码。本项目的核心就是通过JAVA实现一个强大的OCR...

    Java简单验证码识别(附源码)

    总的来说,Java验证码识别不仅加深了对图像处理和模式识别的理解,也为后续学习更高级的机器学习和深度学习技术打下了基础。通过实践这个项目,你可以掌握实际问题的解决思路,提高编程能力,并且能够灵活运用所学...

    java实现给手机发送验证码

    在本场景中,我们将探讨如何使用Java编程语言来实现手机验证码的发送,以及涉及的相关知识点。 首先,我们需要理解手机验证码的基本原理。验证码通常是一串随机生成的数字或字母组合,通过短信的方式发送到用户的...

    Java,验证码,源码

    这个资源包含Java验证码的开发源码和相关的学习视频,可以帮助开发者深入理解验证码的实现原理和如何在自己的项目中应用。 验证码(CAPTCHA,Completely Automated Public Turing test to tell Computers and ...

    Java通用验证码及应用示例

    2. **Java验证码库**: 在Java中,有多个库可以帮助开发者创建验证码,例如 JCaptcha 和 Simple Captcha。这些库提供了丰富的选项来定制验证码的外观,包括字体、颜色、噪声线等。 3. **自定义验证码实现**: ...

    java 验证码识别源程序

    这个Java验证码识别源程序针对的是Windows操作系统,并且据描述声称其识别准确率超过90%,这意味着它具有较高的实用价值。接下来,我们将深入探讨验证码识别的基本原理、相关技术以及如何在Java中实现。 验证码...

    JAVA和HTML5实现的多种验证码实现

    教程中提到的七种JAVA验证码可能包括: 1. 图片验证码:这种验证码通过生成随机的字符或数字组合,然后将其扭曲、旋转、添加噪声等,以增加机器识别的难度。通常使用JAVA的Graphics2D库来绘制图像。 2. 数字验证码...

    验证码破解的方法,简单验证码破解java示例

    本篇文章将详细讨论验证码的基本原理,以及如何使用Java实现简单的验证码破解方法。请注意,了解验证码破解知识主要是为了提高网站安全意识,避免自身系统被攻击,而不是用于恶意破解他人系统。 验证码的类型主要有...

    java验证码生成类

    总的来说,Java验证码生成类的设计和实现涉及到图像处理、随机数生成以及会话管理等多个技术领域。通过理解并实践这些知识点,开发者可以构建安全且用户体验良好的验证码系统。对于初学者,分析并学习`...

    java验证码实现

    综上所述,Java验证码的实现涉及图像处理、随机数生成、字体渲染等多个技术点,通过不断调整和优化,可以创建出安全且用户体验良好的验证码系统。对于初学者来说,理解并实现这样一个项目是一个很好的学习实践机会,...

    java用servlet实现登陆验证码

    Java使用Servlet实现登录验证码涉及到的是Web开发中的安全性与用户体验部分。验证码是一种常用的安全机制,用于防止自动化的机器人或恶意程序进行非法操作,如批量注册、恶意登录等。在这个例子中,我们将探讨两种...

    关于验证码原理及应用的探讨.pdf

    关于验证码原理及应用的探讨,是一项深入研究网络信息安全领域中防止自动化软件滥用的关键技术。随着互联网的普及和网络服务的多样化,确保在线交易、账户安全和数据保护成为了至关重要的议题。验证码,作为一项广泛...

    java验证码识别源码

    在本Java验证码识别源码中,我们将会探讨如何利用编程技术来识别和解析这些图形验证码。 首先,验证码识别通常涉及图像处理和机器学习两大部分。图像处理用于预处理图片,提取特征;机器学习则用于训练模型,识别...

    java web加法验证码实例

    首先,让我们了解加法验证码的基本原理。加法验证码通常会随机生成两个数字,然后将它们相加的结果隐藏在图片中,用户需要输入计算后的答案才能完成验证。这种方式既简单又有效,可以防止大部分自动化攻击。 1. **...

Global site tag (gtag.js) - Google Analytics