weil das einer der kritischten teile ist, frag ich mal lieber nach:
(code ungetestet)
Code: Alles auswählen
class People(SQLObject, BaseRights):
...
#we dont store pwds in plain text
pwd = StringCol(maxlength=40)
def _set_pwd(self, pwd):
return hashlib.sha1(pwd + "mysalt").hexdigest()
def _get_pwd(self):
raise AcessDenied, "no direct access allowed, use `guess_pwd` instead"
def guess_pwd(self, guess):
if self._set_pwd(guess) == self.pwd:
return True
else:
sleep(1) #make brute force offensives harder (@leonidas: ja, das ist ein inline kommentar;-)
return False
danke
edit:
verdammt, wie heist den `maxlength` in SQLobject