DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   Java (http://www.daniweb.com/forums/forum9.html)
-   -   Basic Password Verifier (http://www.daniweb.com/forums/thread158116.html)

AsantaSane Nov 18th, 2008 3:03 pm
Basic Password Verifier
 
Hey there, this is my first post here and I'm in the need of some real help.


I've written a basic password verifier, which checks to see if what you type in is the same as the default stored password, but i continually get a compile error.


import java.util.Scanner;

public class PasswordVerifier
{
        public static boolean isValid(String userPass)
                {
                        /**
                        * This is the default stored password
                        */
                       
                        // Password stored by default is "cool"
                       
                        boolean goodSoFar = true; // Flag
                        int index = 0;                                  // Loop control variable
                       
                        // Is the string the correct length?
                        if (userPass.length() != 4)
                                goodSoFar = false;
                               
                               
                        // Test to see if the characters match the password
                        while (goodSoFar && index < 4)
                        {
                                if (!Character(userPass.charAt(index == 'c')))
                                        goodSoFar = false;
                                index++;
                                if (!Character(userPass.charAt(index == 'o')))
                                        goodSoFar = false;
                                index++;
                                if (!Character(userPass.charAt(index == 'o')))
                                        goodSoFar = false;
                                index++;
                                if (!Character(userPass.charAt(index == 'l')))
                                        goodSoFar = false;there
                                index++;
                       
                        //results are returned
                        return goodSoFar;
                }
}
}


And then here is my driver class


import java.util.Scanner;
 
public class PasswordDriver
{

public static void main(String[] args)
{
        PasswordVerifier PW = new PasswordVerifier();
        String user; // To hold a user pass
       
       
        while(user != "")
                {
                        System.out.println("Please enter a password containing letters and lowercase only, or nothing to end");
                        //create a scanner object
                        Scanner keyboard = new Scanner(System.in);
                       
                        //get user pass
                        user = keyboard.nextLine();
                       
                        //Determine if the password is valid.
                        if (PW(user))
                                {
                                        System.out.println("That is a valid password");
                                }
                        else
                                {
                                        System.out.println("That is not the proper password or format");
                                        System.out.println("Here is an example: cool");
                                }
                }
}
}




The error i get when I'm compiling is

PasswordVerifier.java:30: charAt(int) in java.lang.String cannot be applied to (boolean)
if (!Character(userPass.charAt(index == 'c')))
^
PasswordVerifier.java:33: charAt(int) in java.lang.String cannot be applied to (boolean)
if (!Character(userPass.charAt(index == 'o')))
^
PasswordVerifier.java:36: charAt(int) in java.lang.String cannot be applied to (boolean)
if (!Character(userPass.charAt(index == 'o')))
^
PasswordVerifier.java:39: charAt(int) in java.lang.String cannot be applied to (boolean)
if (!Character(userPass.charAt(index == 'l')))



could someone please help me out, i've tried multiple variances and fixes, but alas... none work for me. Thanks everyone!

dickersonka Nov 18th, 2008 3:10 pm
Re: Basic Password Verifier
 
it needs to be changed to this format
if (userPass.charAt(index) == 'c')

but you are making it hard, you can do this
if(userPass.startsWith("cool")){
return false;
}

sillyboy Nov 18th, 2008 9:22 pm
Re: Basic Password Verifier
 
startsWith? so "coolblahblahblah" will be true too? not sure that sounds totally secure, but yeah, the compiler error is as stated above.

javaAddict Nov 18th, 2008 9:31 pm
Re: Basic Password Verifier
 
I think you have misplaced the parenthesis:

This:
if (!Character(userPass.charAt(index == 'c')))

Should be:
if (!Character(userPass.charAt(index) == 'c'))

You could also try:
goodSoFar = userPass.equals("cool");
return goodSoFar;

dickersonka Nov 18th, 2008 10:51 pm
Re: Basic Password Verifier
 
lol i don't think checking if the password contains c o o l, was too secure, thats why i made the post

AsantaSane Nov 19th, 2008 12:49 am
Re: Basic Password Verifier
 
thanks dickersonka... that fixed the compile issue for the constructor, but in the drive i'm now getting the following error, yet i see nothing wrong =\


symbol : method PW(java.lang.String)
location: class PasswordDriver
if (PW(user))

sillyboy Nov 19th, 2008 12:59 am
Re: Basic Password Verifier
 
You already have the "PasswordVerifier" so you now want to use the methods within it.

PW.isValid(user)

stultuske Nov 19th, 2008 5:49 am
Re: Basic Password Verifier
 
wow ... and to think I thought the .equals(..) method worked great :)


All times are GMT -4. The time now is 6:24 pm.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC