java【检测密码】一些网站设定了一些指定密码的规则。编写一个方法,检测一个字符串是不是是合法的密码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java【检测密码】一些网站设定了一些指定密码的规则。编写一个方法,检测一个字符串是不是是合法的密码相关的知识,希望对你有一定的参考价值。

【检测密码】一些网站设定了一些指定密码的规则。编写一个方法,检测一个字符串是否是合法的密码。假定密码规则如下:
w 密码必须至少有8个字符。
w 密码只能包括数字和字母。
w 密码必须至少有2个数字。

编写一个程序,提示用户输入密码,如果该密码符合规则就显示“Valid Password”,否则显示“Invalid Password”。

求大神~~

可以使用 javascript jquery 用来验证 用户属于是否合法 并制定一些输入规则, 两个都行 挺简单的 参考技术A

    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【检测密码】一些网站设定了一些指定密码的规则。编写一个方法,检测一个字符串是不是是合法的密码的主要内容,如果未能解决你的问题,请参考以下文章

弱口令检测——John the Ripper

Qt WebEngine 密码管理器 - 如何检测网站上何时使用用户名/密码

更改安装Oracle数据库时设定的System sys等用户的密码

如何更改Ubuntu的root密码

一些收藏默认网站后缀

HTTrack - 克隆任意网站