On 2011-08-05 22:24 +0700, michael kapelko wrote: > Is this reasonable or is this stupid? > May be I should use some already-made solution? > How do I make it really safe?
You will first generate a secret that will be stored somewhere. It should be a longish random string. Next you will generate a random salt (say 12 chars long) for each password, and then you'll SHA-1 your password like so: hashlib.sha1(web.config.secret + salt + password).hexdigest() you then store the hexdigest AND salt in the database. Usually, you'd store them both in the password field like so: user_record['password'] = salt + '$' + hexdigest Then when you want to check the password, you rehash it and then: rehashed_pw == user_record['password'].split($)[1] Now, to make it really safe, you also want to do the authentication over SSH. If you want crazy-paranoid-secure you use a hardware token: You give your user a device that will take a 8-digit number that they get when visiting the signup page, and the device gives them a 256-digit number that they have to type in correctly. They have to do it from a secure bunker at an undisclosed location to which they are dropped after being kidnapped by a bunch of gorillas (blindfolded all the way). If they fail to enter the number correctly the first time, the bunker is blown to pieces. If they don't enter it in 5 seconds, bunker is blown to pieces. If they tell anyone about the bunker, site contents, or the hardware token, they get blown to pieces along with their relatives and anyone that had contact with the user in previous 30 days (that's an extra insurance clause). Of course, if you are even more paranoid, you abduct them at night, extract any interaction intention from their brains, input them directly into software, and shove the results back into the server. Then you blow them into pieces. Um... am I making any sense? Probably not. -- Branko Vukelic bra...@herdhound.com bg.bra...@gmail.com Lead Developer Herd Hound (tm) - Travel that doesn't bite www.herdhound.com Love coffee? You might love Loveffee, too. loveffee.appspot.com -- You received this message because you are subscribed to the Google Groups "web.py" group. To post to this group, send email to webpy@googlegroups.com. To unsubscribe from this group, send email to webpy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/webpy?hl=en.