Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / June 2005

Tip: Looking for answers? Try searching our database.

How do I code this (quite easy I guess)?

Thread view: 
Alamannianus@gmail.com - 24 Jun 2005 23:30 GMT
Until now the class is sweet and dandy. Now I want to implement a
function, so that when the user fills in his emailaddress and password,
the system generates a unique id for this user. How can I implement
such a function? Please help.

######################################

public class user {

   private String email;      //user fills in his email
   private String passwort;   //user choses a password
   private String id;         // HERE AN ID SHOULD BE GENERATED BY THE
SYSTEM

      public user(String emailAddress, String Userpassword) {

          email = emailAddress;
          passwort = Userpassword;

      }

      public void releasedateindtabase () {
         System.out.println(("User with ID: " + id ));
         System.out.println(("and email Address " + email));
         System.out.println(("is registered in the system"));

      }

}

###########################################################

// this "superclass" is the one where all users are stored

import java.util.ArrayList;

public class Database {

   private Arraylist user;

   public Database() {

       user = new Arraylist();

   }

   public void getuser(user theuser) {
       
       user.add(theuser);
   }
   
   
}
sameergn@gmail.com - 25 Jun 2005 00:28 GMT
If you are using an Oracle DB as the backend then you can use a
sequence and use the nextval method on that sequence to generate the
ID.

If you do not have DB as a backend then you can store a counter in
file, load it when class is loaded (using static initialization), store
it in static variable, write a synchronized method that will increment
it and return the next value, write it back to file when your app/class
is done

both the methods will generate a predictable id i.e. If I know my ID, I
can guess others IDs too.
Alun Harford - 25 Jun 2005 12:52 GMT
> Until now the class is sweet and dandy. Now I want to implement a
> function, so that when the user fills in his emailaddress and password,
> the system generates a unique id for this user. How can I implement
> such a function? Please help.

Firstly, I think I should point out that storing passwords as plaintext is
fine for a toy, but I wouldn't store my password in it!

> ######################################
>
[quoted text clipped - 4 lines]
>     private String id;         // HERE AN ID SHOULD BE GENERATED BY THE
> SYSTEM
      private static int maxID=0;

>        public user(String emailAddress, String Userpassword) {
>
>            email = emailAddress;
>            passwort = Userpassword;
             id=maxID++;

>        }
...

Alternatively, if you didn't want the ID to be easily guessed,

> public class user {
>
>     private String email;      //user fills in his email
>     private String passwort;   //user choses a password
>     private String id;         // HERE AN ID SHOULD BE GENERATED BY THE
> SYSTEM
      private static java.util.HashSet ids = new java.util.HashTable();
      private java.security.SecureRandom random = new
java.security.SecureRandom();

>        public user(String emailAddress, String Userpassword) throws
Exception{

>            email = emailAddress;
>            passwort = Userpassword;
             boolean finished=false;
             int i;
             for(i=0;i<1024 && !finished;i++) {
                    int randomNumber = random.next(32);
                    if(!ids.contains(new Integer(randomNumber))) {
                           finished=true;
                           id=randomNumber;
                           ids.add(new Integer(randomNumber));
                    }
             }
             if(finished==false) throw new Exception(); //Failed to add it
1024 times in a row. HashSet is too full (2^32 users)

>        }
...

Alun Harford
Alun Harford - 25 Jun 2005 19:10 GMT
> Alternatively, if you didn't want the ID to be easily guessed,
>
[quoted text clipped - 5 lines]
> > SYSTEM
>        private static java.util.HashSet ids = new java.util.HashTable();

that obviously should be:
private static java.util.HashSet ids = new java.util.HashSet();


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.