RE: [PEAR-DEV] Auth - DB_Crypt - any interest?
| From: | LIMBOURG Arnaud | Date: | Mon, 11 Mar 2002 08:56:21 +0000 |
| Subject: | RE: [PEAR-DEV] Auth - DB_Crypt - any interest? | ||
| Groups: | php.pear.dev | ||
| Request: | Send a blank email to pear-dev+get-4952@lists.php.net to get a copy of this message | ||
Yep, i did that too, and ended up switching back to md5 because for some
reason the output of crypt under win was the same than *nux ...
Plus, md5 is faster ;))
Arnaud.
>
>
> below is a Auth Container for doing Crypt rather than md5
>
> - Its useful if you already have a database that uses crypt
> rather than
> md5's
> (i needed to work with midgard tables)
>
> eg. password field is either
> crypt($password) or "**$password" <- clear text..
>
> any interest in fixing it up and adding?
>
> regards
> alan
>
>
>
> require_once(dirname(__FILE__)."/DB.php");
>
>
> class Auth_Container_DB_Midgard extends Auth_Container_DB {
>
> function Auth_Container_DB_Midgard($dsn)
> {
> $this->Auth_Container_DB($dsn);
> }
> function fetchData($username, $password)
> {
> /* Include additional fields if they exist */
> if ($this->options["db_fields"] != "*") {
> $cols = "," . $this->options["db_fields"];
> } else {
> $cols = "";
> }
> //echo "QUERY";
> // echo serialize($this->db);
> $query = sprintf("SELECT %s FROM %s
> WHERE %s = '%s'",
> $this->options['usernamecol'] . ", "
> . $this->options['passwordcol']
> . $cols,
> $this->options['table'],
> $this->options['usernamecol'],
> $this->db->quoteString($username)
> );
>
> $res = $this->db->query($query);
>
> if (DB::isError($res)) {
> return new DB_Error($res->code, PEAR_ERROR_DIE);
> } else {
> $entry = $res->fetchRow(DB_FETCHMODE_ASSOC);
>
> if (is_array($entry)) {
> if (($entry[$this->options['passwordcol']] ==
> "**".$password) ||
> ($entry[$this->options['passwordcol']] ==
> crypt($password,substr($entry[$this->options['passwordcol']],0,2)))
> ) {
>
> Auth::setAuth($entry[$this->options['usernamecol']]);
> $res->free();
>
> return true;
> } else {
> $this->activeUser =
> $entry[$this->options['usernamecol']];
> return false;
> }
> } else {
> $this->activeUser = "";
> return false;
> }
> }
> }
>
> function addUser($username, $password, $additional = "")
> {
> $additional_key = "";
> $additional_value = "";
>
> if (is_array($additional)) {
> foreach ($additional as $key => $value) {
> $additional_key .= ", " . $key;
> $additional_value .= ", '" . $value . "'";
> }
> }
>
> $query = sprintf("INSERT INTO %s (%s, %s%s) VALUES
> ('%s', '%s'%s)",
> $this->options['table'],
> $this->options['usernamecol'],
> $this->options['passwordcol'],
> $additional_key,
> $username,
> crypt($password),
> $additional_value
> );
>
> $res = $this->db->query($query);
>
> if (DB::isError($res)) {
> return new DB_Error($res->code, PEAR_ERROR_DIE);
> } else {
> return true;
> }
> }
>
>
>
> }
>
>
>
> --
> PEAR Development Mailing List (http://pear.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>