The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Перевод из текстового файла в LDIF, MD5 хеш"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Перевод из текстового файла в LDIF, MD5 хеш"  
Сообщение от Heretic (ok) on 03-Окт-07, 19:41 
Добрый день, алл. Написал на скорую руку перловый скрипт, который и из текстового файла переводит в файл ldif и которое в последствии должно импортироваться в LDAP, с паролями, именами итд. Но сталкнулся с проблемой в том что, MD5 выдает не тот хеш который нужен мне,  чтобы пользователь смог потом пройти аутентификацию.
Собственно сам скрипт:

#!/usr/bin/perl
use Digest::MD5 qw(md5 md5_hex md5_base64);
use Encode qw(encode_utf8);
$i=1008;
open(FILE, "TopHoldingPasswd1.csv") or die "Невозможно открыть файло!!: $!\n";
while ($line = <FILE>) {
    ($username, $password, $name, $famil, $mail) = split(" ", $line);
    $passwd = md5_hex($password);
#    print md5(encode_utf8($password)),"\n";
#    print "username: $username, password: md5{$passwd}, name: $name \n";
    open (FILE1, "> /tmp/ldap/$username.ldif") or die "Невозможно создать файло!!: $!\n";
        print FILE1 "dn: uid=$username,ou=people,dc=example,dc=com \n";
        print FILE1 "homeDirectory: /dev/null \n";
        print FILE1 "loginShell: /bin/bash \n";
        print FILE1 "objectClass: top \n";
        print FILE1 "objectClass: posixAccount \n";
        print FILE1 "objectClass: inetOrgPerson \n";
        print FILE1 "objectClass: person \n";
        print FILE1 "objectClass: organizationalPerson \n";
        print FILE1 "objectClass: shadowAccount \n";
        print FILE1 "uidNumber: $i \n";
        print FILE1 "gidnumber: 1000 \n";
        print FILE1 "uid: $username \n";
        print FILE1 "givenName: $name \n";
        print FILE1 "sn: $famil \n";
        print FILE1 "userpassword: {md5}$passwd \n";
        print FILE1 "mail: $mail \n";
        print FILE1 "cn: $name $famil \n";
    close(FILE1);
    $i++;
};
close(FILE);

Пароль хешируется в {md5}2d9c7g43g1e62f80a4bfce850cb516e9, но в LDAPе хеш находятся такого типа: {md5}Toe2xIjPTDg0l598fajd9z==
Подскажите, в чем косяк и как поправить, если не сложно =)
ЗЫ: как можно увидить перл я знаю не очень хорошо.
ЗЫЫ: Спасибо, за ответ.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Перевод из текстового файла в LDIF, MD5 хеш"  
Сообщение от Heretic (ok) on 04-Окт-07, 00:05 
Повидимому правильный ответ таков:

#!/usr/bin/perl
use Digest::MD5 qw(md5_base64);
$i=1008;
open(FILE, "TopHoldingPasswd1.csv") or die "Невозможно открыть файло!!: $!\n";
while ($line = <FILE>) {
    ($username, $password, $name, $famil, $mail) = split(" ", $line);
    $passwd = md5_base64($password);
    open (FILE1, "> /tmp/ldap/$username.ldif") or die "Невозможно создать файло!!: $!\n";
        print FILE1 "dn: uid=$username,ou=people,dc=example,dc=com \n";
        print FILE1 "homeDirectory: /dev/null \n";
        print FILE1 "loginShell: /bin/bash \n";
        print FILE1 "objectClass: top \n";
        ...
        print FILE1 "userpassword: {md5}$passwd== \n";
        print FILE1 "mail: $mail \n";
        print FILE1 "cn: $name $famil \n";
    close(FILE1);
    $i++;
};
close(FILE);

Но еще не тестил.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру