what if you don't use form(). What if you simply build your own html
<form></form> ?

Is it possible to convert the request.vars.get(passfied, '') to the
same hash form as you would get from using form() ?

Do I need to manually set a key and then have to use hash()?  IS_CRYPT
seems to need some more documentation with regard how to work with the
data resulting from it...






On Sep 20, 1:43 pm, mdipierro <mdipie...@cs.depaul.edu> wrote:
> request.vars.get(passfield, '')
>
> contains the un-hashed value pre-validation
>
> form.vars.get(passfield, '')
>
> contains the hashed value post validation
>
> Massimo
>
> On Sep 20, 2:42 pm, Jonathan Lundell <jlund...@pobox.com> wrote:
>
> > On Sep 20, 2009, at 12:34 PM, waTR wrote:
>
> > > @Jonathan:
> > > I looked at that code a lot yesterday, before I posted. The thing is,
> > > that code doesn't really show how it compares the values.
>
> > > The if temp_user[passfield] == form.vars.get(passfield, '') doesn't
> > > make sense to me. temp_user[passfield] should return the hash held in
> > > the db password field. The form.vars.get(passfield, '') should return
> > > the non-hash password entered into the form. Where does the
> > > translation occure from the Form to the hash stored in the db?
>
> > It happens in the IS_CRYPT() validation, which returns the hashed  
> > value of the field.
>
> > > The above code doesn't show that translation...
>
> > > On Sep 18, 5:08 pm, Jonathan Lundell <jlund...@pobox.com> wrote:
> > >> On Sep 18, 2009, at 4:44 PM, waTR wrote:
>
> > >>> I need to be able to compare another password submitted against the
> > >>> one in that field. How would I go about doing that? What functions  
> > >>> are
> > >>> available in web2py for this.
>
> > >>> db.define_table('pass',
> > >>> SQLField("password", 'password', readable=False, label='Password',
> > >>> requires=CRYPT()))
>
> > >>> I.e. I have just submitted a form that contains a
> > >>> request.get_vars.password
> > >>> how do I compare that password against the one in db.
>
> > >> Here's the central code in Auth.login:
>
> > >>                  users = self.db(table_user[username] == form.vars
> > >> [username]).select()
> > >>                  if users:
> > >>                      # user in db, check if registration pending or
> > >> disabled
> > >>                      temp_user = users[0]
>
> > >>                      ...
>
> > >>                      if not user:
> > >>                          # alternates have failed, maybe because
> > >> service inaccessible
> > >>                          if self.settings.login_methods[0] == self:
> > >>                              # try logging in locally using cached
> > >> credentials
> > >>                              if temp_user[passfield] == form.vars.get
> > >> (passfield, ''):
> > >>                                  # success
> > >>                                  user = temp_user
>
> > >> The values being compared are hashes, because the field in question
> > >> requires IS_CRYPT(), which really doesn't do anything but hash the
> > >> value.
>
> > >>> On Sep 18, 1:34 pm, Jonathan Lundell <jlund...@pobox.com> wrote:
> > >>>> On Sep 18, 2009, at 1:06 PM, waTR wrote:
>
> > >>>>> Related question though... how can one check if password entered
> > >>>>> matches password stored in DB for that user? When I retrieve the
> > >>>>> stored password via select(), it is encrypted. How does Auth
> > >>>>> decrypt?
> > >>>>> Where can I find that code (what file)?
>
> > >>>> Briefly, you don't decrypt the stored password. Actually, you  
> > >>>> can't,
> > >>>> because it's not encrypted; it's hashed.
>
> > >>>> You check it by hashing the login password and comparing the  
> > >>>> hashes.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to