随机密码生成器测试驱动程序不会执行

时间:2014-09-21 22:17:56

标签: java passwords

我在类密码中编写代码,生成给定长度的密码。测试驱动程序PasswordTest将不同的长度输入到generatePassword方法中。两个程序都编译但是当我尝试运行PasswordTest.java时,我得到错误:线程中的异常" main"。如何更正此错误并让我的测试驱动程序正常工作?

这是密码类:

    /**
*   Password.java -- Generates random passwords
*   @author Sam Harrison
*   @version 21-Sept-2014
*
*/
import java.util.Random;
public class Password
{
    public char randomChar(int length)
    {
        final int NUM_CHARS = 62; 

        Random rand = new Random();
        int num = rand.nextInt(NUM_CHARS);

        if (num <= 9)
           num += 48;
        else if (num <= 35)
           num += 55;
        else
           num += 61;

        return (char) num;
    }
    public String generatePassword(int length)
    {   
        String str1 = "abcdefghijklmnopqrstuvwxyz1234567890";

        Password randObj = new Password();
        str1 = randObj.generatePassword(length);
        return str1;

    }
}

以下是测试驱动程序:

    /**
*   PasswordTest.java
*   @author Sam Harrison
*   @version 21-Sept-2014
*
*/

public class PasswordTest
{
    public static void main (String[] args)
    {
        int length = 3;

        Password randObj = new Password();
        randObj.generatePassword(length);
    }
}

1 个答案:

答案 0 :(得分:0)

您实际上没有生成密码。您需要使用某种积累字符的循环替换generatePassword的主体。现在,它所做的就是分配一个Password的新实例并递归到那个实例中,这个实例做同样的事情,直到你耗尽堆栈或堆为止。