java【检测密码】一些网站设定了一些指定密码的规则。编写一个方法,检测一个字符串是不是是合法的密码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java【检测密码】一些网站设定了一些指定密码的规则。编写一个方法,检测一个字符串是不是是合法的密码相关的知识,希望对你有一定的参考价值。
【检测密码】一些网站设定了一些指定密码的规则。编写一个方法,检测一个字符串是否是合法的密码。假定密码规则如下:
w 密码必须至少有8个字符。
w 密码只能包括数字和字母。
w 密码必须至少有2个数字。
编写一个程序,提示用户输入密码,如果该密码符合规则就显示“Valid Password”,否则显示“Invalid Password”。
求大神~~
import java.util.Scanner;
public class PassWord
public static int NumberCount(String s)<span style="color:#33cc00;">//计算字符串中的数字的个数</span>
int count = 0;
for(int i = 0;i < s.length();i++)
if(Character.isDigit(s.charAt(i)))
count++;
return count;
public static boolean Test(String s)<span style="color:#33cc00;">//字符串中是否仅含字母和数字</span>
boolean Password = false;
for(int i = 0;i<s.length();i++)
if(Character.isDigit(s.charAt(i))||Character.isLetter(s.charAt(i)))
Password = true;
else
Password = false;
break;
return Password;
public static void TestString(String s)<span style="color:#33cc00;">检验是否符合规则</span>
if(NumberCount(s) >= 2 && s.length() >= 8 && Test(s))
System.out.println("The password is valid");
else
System.out.println("The password is invalid");
public static void main(String []args) <span style="color:#33cc00;">//测试程序</span>
Scanner input = new Scanner(System.in);
System.out.println("请输入密码:");
String password = input.nextLine();
PassWord string = new PassWord();
string.TestString(password);
Java实现验证码(上)
总所周知,现在登录注册各种网站账号很多都要求输入验证码。设置验证码,毫无疑问降低了用户体验,但为什么各种网站还仍然使用验证码呢?
很明显,验证码有其特殊的作用:验证码是一种区分用户是计算机还是人的公共全自动程序。它能够防止恶意破解密码、刷票、论坛灌水、刷页等。想想看,如果没有验证码,每次登录网站只需用户名和密码,这时,一些心术不正的黑客可以利用暴力穷举的方法破解密码,而且,黑客们还可以不断刷新访问同一个网站,使其负担加重,严重时能够导致网站崩溃。所以设置验证码就成了必要了。
废话不多说,我将在这里介绍四种常见的验证码实现,分别是用jsp和servlet实现简单的字母数字验证码、利用Kaptcha组件实现验证码、中文验证码实现、算术验证码实现。
验证码的实现可以分为几步:生成验证码并呈现出来,判断用户输入的验证码是否准确,处理结果。
(一)jsp和servlet实现简单的字母数字验证码
首先先看最终效果:
最终呈现的是数字和字母的随机组合。
eclipse项目目录如下:
下面来看详细实现:
①首先实现前端呈现。由于重点是后台逻辑实现,所以前端写得比较简单,只有一个表单:
处理表单的类为LoginServlet,在LoginServlet中判断用户输入是否准确;验证码图片是由ImageServlet生成并呈现;用javascript实现“看不清楚”功能,点击后重新发送请求。需要注意的是,由于缓存的作用,如果只是单单再用ImageServlet生成一个,它并不会更换。要实现更换功能,可以在后面加上后缀,使得每次请求的url不同(用随机数有时会出错,具体原因请google之)。
②ImageServlet类继承HttpServlet类, 重写doGet方法。要生成验证码并以图片形式呈现,主要有以下6个步骤:
·定义BufferedImage对象
·获得Graphics
·通过Random产生随机验证码信息
·使用Graphics绘制图片
·记录验证码信息到session中
·使用ImageIO输出图片
代码如下:
③LoginServlet比较简单,只需要通过session获取生成的验证码和用户输入的比较,然后各自处理即可。
写完代码后配置好web.xml就大功告成了!!!
(二)利用Kaptcha组件实现
用Kaptcha组件来实现比较简单,因为它会帮你生成验证码图片。首先要导入Kaptcha包。
目录如下:
index.jsp还是类似,现在img的src可以写固定的jpg,Kaptcha会自动帮你生成不同的图片:
KaptchaServlet.java是jar包上提供的,复制过去即可。
check.jsp检查验证码是否正确,这里就不多说了,见下:
最后配置web.xml文件。Kaptcha有很多的属性可以配置:验证码图片大小,文本内容等等很多很多,有兴趣的可以深入研究,这里我只给出最简单的示例:
最终运行结果如下:
完整代码见:https://github.com/lingd3/Captcha
以上是关于java【检测密码】一些网站设定了一些指定密码的规则。编写一个方法,检测一个字符串是不是是合法的密码的主要内容,如果未能解决你的问题,请参考以下文章
Qt WebEngine 密码管理器 - 如何检测网站上何时使用用户名/密码