В базе данных есть только одна таблица USERS.

Пароли в базе данных в поле PASSWD хранятся в шифрованном виде и их можно только поменять на новые. Добавление и редактирование пользователей осуществляются через веб-интерфейс (выложено будет позже).
А пока вот программа аутентификации, написана на Perl.
#!/usr/bin/perl
use DBI;
$_=<>;
chomp;
($login, $passwd) = split / +/;
$dbh = DBI->connect(
'dbi:InterBase:' .
'dbname=/home/data/squid.gdb;' .
'host=localhost;' .
'ib_charset=win1251;' ,
'SYSDBA',
'masterkey', { RaiseError => 1, AutoCommit => 0 });
$sql = "select passwd from users where login='$login'";
$sth = $dbh->prepare( $sql );
$sth->execute();
@res = $sth->fetchrow_array;
$pass=$res [ 0 ];
$sth->finish();
$dbh->commit();
$dbh->disconnect();
unless($pass) {
print "ERR\n";
} else {
if ($pass eq crypt($passwd, $passwd)) {
print "OK\n";
} else {
print "ERR\n";
}
}
© Ramzaj
Комментариев нет:
Отправить комментарий