繁体   English   中英

在Java中无法检查密码的方法

Method to Check Password in Java Not Working

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在尝试编写一种方法,该方法返回字符串是否在CodeHS中为有效密码。

它必须至少包含八个字符,并且只能包含字母和数字。

在分级机中,它通过了除passwordCheck("codingisawesome")passwordCheck("QWERTYUIOP")之外的所有测试。

这是我到目前为止的内容:

public boolean passwordCheck(String password)
{
    if (password.length() < 8)
    {
        return false;  
    }
    else 
    {  
        char c;  
        int count = 0;   
        for (int i = 0; i < password.length(); i++) 
        {
            c = password.charAt(i);  
            if (!Character.isLetterOrDigit(c)) 
            {
                return false;  
            } else if (Character.isDigit(c)) 
            {
                count++;     
            }
        }
        if (count < 2)
        {  
            return false;  
        }
    }
    return true;  
}

如果有人可以提供帮助,我将不胜感激。 谢谢。

3 个回复

尝试使用模式的方法(这比循环更简单):

public boolean passwordCheck(String password)
{
    return password!=null && password.length()>=8 && password.matches("[A-Za-z0-9]*");
}

关于正则表达式的体面教程(这就是AZ魔术的来历): http : //www.vogella.com/tutorials/JavaRegularExpressions/article.html

假设您的要求如前所述

它必须至少包含八个字符,并且只能包含字母和数字

然后,无需计数数字。 只需检查密码是否为最小长度,然后遍历每个返回假(如果不是字母或数字)的字符。 喜欢,

public boolean passwordCheck(String password) {
    if (password != null && password.length() >= 8) {
        for (char ch : password.toCharArray()) {
            if (!Character.isLetterOrDigit(ch)) {
                return false;
            }
        }
        return true;
    }
    return false;
}

这些测试未通过,因为您的代码检查密码必须至少包含两位数:-

 if (count < 2) { return false; } 

而且您的测试字符串没有任何内容。 删除这段代码,它应该可以工作。 有关更好的方法,请参见其他答案。

2 Java - 检查在线密码

这是来自梁的 Java 书。 基本上,我必须用一种方法检查某个词是否可以用作密码。 另外,如果(不是必需的)我会显示确切的错误类型怎么办? 例如,如果我通知用户只发生了一种错误(例如“您的密码长度正常,但您的密码中没有数字”)? ...

3 Java用户名密码检查

有一个特定的服务器IP地址需要身份验证我通常通过cmd行访问“ftp xyz0”输入我的u / n,输入我的p / w我就在。我想让我的程序询问用户凭据,检查是否他们可以登录到这个服务器/ IP地址,如果可以,只返回true,否则返回false。 我不拥有这台服务器或者对它非常了解,我只需要知 ...

4 Java Chess:检查签入玩家是否正常工作的方法

这是我用Java编写的国际象棋游戏的粗略设置。 有四个主要对象: 棋盘:2个正方形对象的数组(8 x 8)正方形:具有颜色,整数高度,整数宽度和块对象块:所有类型的块都从此继承(例如Rook,Bishop等)播放器:目前有一个色域(哪些是它们的) 我正在尝试在我的Board类中编写 ...

2015-01-14 03:02:32 1 495   java
5 Java中的密码哈希方法

我正在使用Java。 我使用这种方法来散列密码,并且在存储到数据库时它正确工作。 现在我解密很困难。 有没有比这更有效的方法? ...

6 检查密码/密钥是否匹配的方法

我想编写一个简单的java程序来检查keycode是否与一组条件匹配。 这是我到目前为止: 提示用户输入密钥代码。 程序首先检查它是否超过6个字符且少于8个字符。 然后检查它是否包含小写,大写和数字。 我希望它允许用户再次输入密码,如果他犯了任何错误,而不是重新做 ...

8 为什么此密码检查无法按预期工作?

我试图从PHP扩展。 这是我遇到的一个基本问题,无法弄明白...... password.pl card.pl 什么都没有从password.pl表单传递给card.pl? 我以前用过一个类似的例子没问题? 更多咖啡...... ...

2011-04-05 11:48:04 2 256   perl/ cgi
9 Jasypt加密并检查密码不起作用

我对jasypt有问题。 它可以正确加密密码,但是如果我尝试检查密码,它将挂起并且永远不会消失。 任何提示都可以帮助,谢谢。 我正在使用tomcat8。它不起作用。 可能是安全问题吗? ...

10 php哈希密码检查无法正常工作

散列密码我有一个奇怪的问题。 我在这个网站(运行php的Windows)上使用了另一个服务器上的另一个网站上的相同脚本(linux运行php)。 登录将无法正常工作,存储的散列密码与输入的密码不匹配,我已回复检查,他们只是没有。 正如我所看到的,代码(两者都相同)适用于Linux而不适用于 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM