Results 1 to 20 of 24
Thread: Password asking
- 08-14-2009, 05:56 PM #1
Member
- Join Date
- Aug 2009
- Posts
- 32
- Rep Power
- 0
Password asking
I want to ask a password before someone uses my program
a) is this safe
b) is it possible to use more then one password
I currently have:
Java Code:private static boolean CheckPswd(char[] pswd) { boolean isCorrect = true; char[] correctPassword = { 'P', 'a', 's', 's', 'w', 'o', 'r', 'd' }; if (pswd.length != correctPassword.length) { isCorrect = false; } else { isCorrect = Arrays.equals (pswd, correctPassword); } //Zero out the password. Arrays.fill(correctPassword,'0'); return isCorrect; }
- 08-14-2009, 08:28 PM #2
Member
- Join Date
- Aug 2009
- Posts
- 32
- Rep Power
- 0
Alright,
I had to ask this immediatly,
so: How can you make use of more passwords?
And wich hashes are avaible for java?
md5, sha1, DES, ???
- 08-14-2009, 09:35 PM #3
Senior Member
- Join Date
- Sep 2008
- Posts
- 564
- Rep Power
- 5
you can use an array or any kidn of container to hold whatever object you have for a password (char array, string...)
- 08-14-2009, 09:38 PM #4
Senior Member
- Join Date
- Sep 2008
- Posts
- 564
- Rep Power
- 5
you can use md5 or sha-1 for hashes. just look up the 'messagedigest' class and it should link you to a bunch of info you need, including valid encryption algorithms. i haven't used this stuff in over a year and even when i did i barely touched on it, but it isnt TOO complicated... i think
- 08-15-2009, 08:56 AM #5
Member
- Join Date
- Aug 2009
- Posts
- 32
- Rep Power
- 0
I tried this:
But this doesn't work,Java Code:private static boolean CheckPswd(char[] pswd) { boolean isCorrect = true; char[] p1 = {'P', 'a', 's', 's', 'w', 'o', 'r', 'd'}; char[] p2 = {'P', 'a', 's', 's', 'w', 'o', 'r', 'e'}; char[] pass = {p1,p2}; for(int i=0; i<pass.length; i++){ if (pswd.length != pass.length) { isCorrect = false; } else { isCorrect = Arrays.equals (pswd, pass[i]); } } //Zero out the password. Arrays.fill(pass,'0'); return isCorrect; } }
where have I done something wrong?
- 08-15-2009, 03:22 PM #6
Senior Member
- Join Date
- Mar 2009
- Posts
- 552
- Rep Power
- 5
And you really should encrypt your password, if the data is sensitive... You might even want to encrypt, in some way, high-sensitivity data in general.Java Code:char[] pass = {p1,p2} should be char[][] pass = {p1,p2}If the above doesn't make sense to you, ignore it, but remember it - might be useful!
And if you just randomly taught yourself to program, well... you're just like me!
- 08-15-2009, 05:27 PM #7
Member
- Join Date
- Aug 2009
- Posts
- 32
- Rep Power
- 0
Yes ofcourse I should encrypt it, but I have to be sure it works first,
it gives me this error:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayStoreException: java.lang.Character
at java.util.Arrays.fill(Arrays.java:2710)
at java.util.Arrays.fill(Arrays.java:2685)
at D_Programs.D_MENU.CheckPswd(D_MENU.java:450)
at D_Programs.D_MENU.LoginButtonActionPerformed(D_MEN U.java:230)
at D_Programs.D_MENU.access$000(D_MENU.java:33)
at D_Programs.D_MENU$1.actionPerformed(D_MENU.java:78 )
at javax.swing.AbstractButton.fireActionPerformed(Abs tractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed (AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed (DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultB uttonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseRe leased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.jav a:6263)
at javax.swing.JComponent.processMouseEvent(JComponen t.java:3267)
at java.awt.Component.processEvent(Component.java:602 8)
at java.awt.Container.processEvent(Container.java:204 1)
at java.awt.Component.dispatchEventImpl(Component.jav a:4630)
at java.awt.Container.dispatchEventImpl(Container.jav a:2099)
at java.awt.Component.dispatchEvent(Component.java:44 60)
at java.awt.LightweightDispatcher.retargetMouseEvent( Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(C ontainer.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Conta iner.java:4168)
at java.awt.Container.dispatchEventImpl(Container.jav a:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475 )
at java.awt.Component.dispatchEvent(Component.java:44 60)
at java.awt.EventQueue.dispatchEvent(EventQueue.java: 599)
at java.awt.EventDispatchThread.pumpOneEventForFilter s(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(E ventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarch y(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThre ad.java:122)
Exception in thread "AWT-EventQueue-0" java.lang.ArrayStoreException: java.lang.Character
at java.util.Arrays.fill(Arrays.java:2710)
at java.util.Arrays.fill(Arrays.java:2685)
at D_Programs.D_MENU.CheckPswd(D_MENU.java:450)
at D_Programs.D_MENU.LoginButtonActionPerformed(D_MEN U.java:230)
at D_Programs.D_MENU.access$000(D_MENU.java:33)
at D_Programs.D_MENU$1.actionPerformed(D_MENU.java:78 )
at javax.swing.AbstractButton.fireActionPerformed(Abs tractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed (AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed (DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultB uttonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseRe leased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.jav a:6263)
at javax.swing.JComponent.processMouseEvent(JComponen t.java:3267)
at java.awt.Component.processEvent(Component.java:602 8)
at java.awt.Container.processEvent(Container.java:204 1)
at java.awt.Component.dispatchEventImpl(Component.jav a:4630)
at java.awt.Container.dispatchEventImpl(Container.jav a:2099)
at java.awt.Component.dispatchEvent(Component.java:44 60)
at java.awt.LightweightDispatcher.retargetMouseEvent( Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(C ontainer.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Conta iner.java:4168)
at java.awt.Container.dispatchEventImpl(Container.jav a:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475 )
at java.awt.Component.dispatchEvent(Component.java:44 60)
at java.awt.EventQueue.dispatchEvent(EventQueue.java: 599)
at java.awt.EventDispatchThread.pumpOneEventForFilter s(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(E ventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarch y(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThre ad.java:122)
Exception in thread "AWT-EventQueue-0" java.lang.ArrayStoreException: java.lang.Character
at java.util.Arrays.fill(Arrays.java:2710)
at java.util.Arrays.fill(Arrays.java:2685)
at D_Programs.D_MENU.CheckPswd(D_MENU.java:450)
at D_Programs.D_MENU.LoginButtonActionPerformed(D_MEN U.java:230)
at D_Programs.D_MENU.access$000(D_MENU.java:33)
at D_Programs.D_MENU$1.actionPerformed(D_MENU.java:78 )
at javax.swing.AbstractButton.fireActionPerformed(Abs tractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed (AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed (DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultB uttonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseRe leased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.jav a:6263)
at javax.swing.JComponent.processMouseEvent(JComponen t.java:3267)
at java.awt.Component.processEvent(Component.java:602 8)
at java.awt.Container.processEvent(Container.java:204 1)
at java.awt.Component.dispatchEventImpl(Component.jav a:4630)
at java.awt.Container.dispatchEventImpl(Container.jav a:2099)
at java.awt.Component.dispatchEvent(Component.java:44 60)
at java.awt.LightweightDispatcher.retargetMouseEvent( Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(C ontainer.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Conta iner.java:4168)
at java.awt.Container.dispatchEventImpl(Container.jav a:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475 )
at java.awt.Component.dispatchEvent(Component.java:44 60)
at java.awt.EventQueue.dispatchEvent(EventQueue.java: 599)
at java.awt.EventDispatchThread.pumpOneEventForFilter s(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(E ventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarch y(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThre ad.java:122)
BUILD STOPPED (total time: 31 seconds)
Java Code:private static boolean CheckPswd(char[] pswd) { boolean isCorrect = true; char[] p1 = {'P', 'a', 's', 's', 'w', 'o', 'r', 'd'}; char[] p2 = {'P', 'a', 's', 's', 'w', 'o', 'r', 'e'}; char[][] pass = {p1,p2}; for(int i=0; i<pass.length; i++){ if (pswd.length != pass.length) { isCorrect = false; } else { isCorrect = Arrays.equals (pswd, pass[i]); } } //Zero out the password. Arrays.fill(pass,'0'); return isCorrect; }
- 08-15-2009, 05:48 PM #8
Senior Member
- Join Date
- Mar 2009
- Posts
- 552
- Rep Power
- 5
replace Arrays.fill(pass, 0) with
you cant fill an array of character arrays with '0', you have to fill each individual character array. pass is an array of character arrays, pass[index] is a character array.Java Code:for(int i=0; i<pass.length; i++){ Arrays.fill(pass[i],'0'); }If the above doesn't make sense to you, ignore it, but remember it - might be useful!
And if you just randomly taught yourself to program, well... you're just like me!
- 08-15-2009, 07:50 PM #9
Member
- Join Date
- Aug 2009
- Posts
- 32
- Rep Power
- 0
It now just always says: Login failed,
Java Code:private static boolean CheckPswd(char[] pswd) { boolean isCorrect = true; char[] p1 = {'P', 'a', 's', 's', 'w', 'o', 'r', 'd'}; char[] p2 = {'P', 'a', 's', 's', 'w', 'o', 'r', 'e'}; char[][] pass = {p1,p2}; for(int i=0; i<pass.length; i++){ if (pswd.length != pass.length) { isCorrect = false; } else { isCorrect = Arrays.equals (pswd, pass[i]); } //Zero out the password. Arrays.fill(pass[i],'0'); } return isCorrect; }
- 08-15-2009, 09:00 PM #10
Senior Member
- Join Date
- Jun 2008
- Posts
- 339
- Rep Power
- 5
It will always return false because the password can't match both p1 and p2...
If you're trying to test for a match against one of the hard-coded passwords, exit the loop when you find one that matches for length and content.
- 08-16-2009, 12:35 PM #11
Member
- Join Date
- Aug 2009
- Posts
- 32
- Rep Power
- 0
EDIT: Solved
Last edited by Kruptein; 08-16-2009 at 01:10 PM.
- 08-16-2009, 12:46 PM #12
Member
- Join Date
- Aug 2009
- Posts
- 32
- Rep Power
- 0
Okay I've solved it with a while-loop,
Java Code:private static boolean CheckPswd(char[] pswd) { boolean isCorrect = true; char[] p1 = {'P', 'a', 's', 's', 'w', 'o', 'r', 'd'}; char[] p2 = {'P', 'a', 's', 's', 'w', 'o', 'r', 'e'}; char[][] pass = {p1,p2}; int i = 1; while(!isCorrect){ if(pswd.length != pass.length) { isCorrect = false; }else{ isCorrect = Arrays.equals(pswd, pass[i]); } Arrays.fill(pass[i],'0'); i++; } return isCorrect; }Last edited by Kruptein; 08-16-2009 at 01:10 PM.
- 08-16-2009, 01:09 PM #13
Member
- Join Date
- Aug 2009
- Posts
- 32
- Rep Power
- 0
The while loop always returns login successfull ...
:( why?Last edited by Kruptein; 08-16-2009 at 01:17 PM.
-
- 08-16-2009, 02:51 PM #15
Member
- Join Date
- Aug 2009
- Posts
- 32
- Rep Power
- 0
Okay your right, now the while loop is entered, but now always returns LOGIN FAIL
ofcourse this is easier to do with a for loop, (the one I had first), but why does it return Login Fail?Java Code:private static boolean CheckPswd(char[] pswd) throws NoSuchAlgorithmException { boolean isCorrect = true; char[] p1 = {'P', 'a', 's', 's', 'w', 'o', 'r', 'd'}; char[] p2 = {'P', 'a', 's', 's', 'w', 'o', 'r', 'e'}; char[][] pass = {p1,p2}; int i = 1; isCorrect = false; while(i>pass.length){ while(!isCorrect){ if(pswd.length != pass.length) { isCorrect = false; }else{ isCorrect = Arrays.equals(pswd, pass[i]); } } i++; } Arrays.fill(pass[0],'0'); Arrays.fill(pass[1],'0'); return isCorrect;
-
1) Do you want to compare password lengths within the loop.
2) Working this out will require a bit of thought and a lot of paper. Try walking through your code logic as if you were the JVM and work through a few examples walking through your code step-by-step to see where your fallacies lie. This exercise will help you in the long run.
- 08-16-2009, 06:43 PM #17
Senior Member
- Join Date
- Jun 2008
- Posts
- 339
- Rep Power
- 5
If you step through it, you'll see you set i = 1, followed by the loop condition 'while(i>pass.length)'...
I suggest you start again on that loop - what you've got there is a mess. I did suggest a way to to it previously - and you're still welcome to use it.
As Fubarable says, you need to work out on paper, step by step, exactly how this code will work - in English, before translating it into Java code.Last edited by dlorde; 08-16-2009 at 06:53 PM.
- 08-17-2009, 10:04 AM #18
Member
- Join Date
- Aug 2009
- Posts
- 32
- Rep Power
- 0
Okay,
-User clicks on login-button
-Content of password field is sent to the script
-Content goes trough messagedigest.
-the crypted content has to be the same as an other hashed string
-if they are the same, show login successfull
something like this?
-
No. Walk through your loops step by step.
- 08-17-2009, 04:39 PM #20
Member
- Join Date
- Aug 2009
- Posts
- 32
- Rep Power
- 0
Similar Threads
-
'Password' help
By iWonder in forum New To JavaReplies: 20Last Post: 12-17-2008, 10:05 PM -
how to check password for 3 times enterd wrong password
By sk.mahaboobbhasha@gmail.c in forum New To JavaReplies: 2Last Post: 11-14-2008, 07:53 PM -
how to check password for 3 times enterd wrong password
By sk.mahaboobbhasha@gmail.c in forum Java ServletReplies: 0Last Post: 11-14-2008, 01:22 PM -
How to check password of a jsp/html with the password of Database(mysql) #1
By sk.mahaboobbhasha@gmail.c in forum Java ServletReplies: 2Last Post: 11-14-2008, 01:11 PM -
How to get password in SWT
By Java Tip in forum SWTReplies: 0Last Post: 07-02-2008, 08:04 PM


LinkBack URL
About LinkBacks
Reply With Quote

Bookmarks