Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> md5crypt 
V
    Опции темы
gcc
Дата 6.8.2008, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



как работать с этим шифрвоанием md5crypt?

Код
$1$e9118886d$VLKUePcy61pw1qNNPYwTQ.


на php наверное так 
Код
$password = Md5crypt ($pw, $salt); 


или что это за шифрвоание? каким модулем воспользоваться?

я нашел один очень новый модуль который появился недавно, пару недель назад p5-Authen-Passphrase-0.005 , но так и не понял что он делает 

при выполнение пишет такое:
Код
Bareword "Data::Float::nan" not allowed while "strict subs" in use at (eval 7) line 567.


ругаеться на строку use Authen::Passphrase::MD5Crypt;



Это сообщение отредактировал(а) gcc - 6.8.2008, 10:40
PM WWW ICQ Skype GTalk Jabber   Вверх
shamber
Дата 6.8.2008, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: 17
Всего: 18



gcc, а что вам нужно? Зашифровать строку?
PM MAIL Jabber   Вверх
gcc
Дата 6.8.2008, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



да, программа MTA Postfix && pop3 работают с Md5crypt, очень рекомендуеться это шифрвоание

еще вроде бы я видел только остальные 2 варианта: внутреннее шифрвоание php или читый вид

Это сообщение отредактировал(а) gcc - 6.8.2008, 11:17
PM WWW ICQ Skype GTalk Jabber   Вверх
shamber
Дата 6.8.2008, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: 17
Всего: 18



используй Digest::MD5

Код

use Digest::MD5 qw(md5 md5_hex md5_base64);

 $digest = md5($data);
 $digest = md5_hex($data);
 $digest = md5_base64($data);

 # OO style
 use Digest::MD5;

 $ctx = Digest::MD5->new;

 $ctx->add($data);
 $ctx->addfile(*FILE);

 $digest = $ctx->digest;
 $digest = $ctx->hexdigest;
 $digest = $ctx->b64digest;


PM MAIL Jabber   Вверх
gcc
Дата 6.8.2008, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



c md5 будет работать? я видел можно использовать только вот это:
Код
 POP3AUTH_ORIG="LOGIN CRAM-MD5 CRAM-SHA1 CRAM-SHA256" 


этот хэш это какие шифрование? 
как это в perl понять какую функуцию использоваться для этих видов? CRAM-SHA256 это какой модуль, кстате SHA256 по разному можно зашифровать...


Это сообщение отредактировал(а) gcc - 6.8.2008, 12:13
PM WWW ICQ Skype GTalk Jabber   Вверх
shamber
Дата 6.8.2008, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: 17
Всего: 18



gcc, pop3 этож другое дело. Есть же модуль для pop3

Добавлено через 2 минуты и 5 секунд
gcc, смотрите тут
PM MAIL Jabber   Вверх
gcc
Дата 6.8.2008, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



pop3, imap, postfix + mysql  стоит на сервере, мне надо поставить в таблицу, чтобы вся система работала, сейчас стоит там md5crypt с php вида $1$e9118886d$VLKUePcy61pw1qNNPYwTQ.

я вот хотел спросить как работать на perl чтобы вставить в таблицу этот хэш smile то есть везде видел на php используеться: Md5crypt, внутреннее шифрвоание php или чиcтый вид

Это сообщение отредактировал(а) gcc - 6.8.2008, 11:23
PM WWW ICQ Skype GTalk Jabber   Вверх
ginnie
Дата 6.8.2008, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 38
Всего: 49



Уважаемый gcc, возможно Вам подойдет Crypt::PasswdMD5.

Это сообщение отредактировал(а) ginnie - 6.8.2008, 12:14


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
KSURi
Дата 6.8.2008, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



Это unix-md5 хэш. 
ginnie, указал на правильный модуль, а конкретно в нем вам нужен метод unix_md5_crypt().
PS: кстати его можно получить одноименной стандартной юниксовой утилитой

Это сообщение отредактировал(а) KSURi - 6.8.2008, 13:35


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
arto
Дата 6.8.2008, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



perl -le 'print crypt ($ARGV[0],$ARGV[1])' 'test' '$1$testtest$'
$1$testtest$SpO/FHIMn8I1fYKuRHVWW1

PM MAIL ICQ   Вверх
gcc
Дата 6.8.2008, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



а что должно быть $salt ? 

php видно что оно генериться с случайных чисел, то как cyrus-sals2 авторизирует, если там будет случайно число? не могу понять в гугле что-то не вижу

или может быть любой md5 подойдет?

Код

checking DIGEST-MD5... enabled
checking for crypt... no
checking for crypt in -lcrypt... yes
checking PLAIN... enabled
checking LOGIN... enabled
checking PASSDSS... disabled


Код


// md5crypt
// Action: Creates MD5 encrypted password
// Call: md5crypt (string cleartextpassword)
//
$MAGIC = "$1$";
$ITOA64 = "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

function md5crypt ($pw, $salt="", $magic="")
{
   global $MAGIC;

   if ($magic == "") $magic = $MAGIC;
   if ($salt == "") $salt = create_salt (); 
   $slist = explode ("$", $salt);
   if ($slist[0] == "1") $salt = $slist[1];

   $salt = substr ($salt, 0, 8);
   $ctx = $pw . $magic . $salt;
   $final = hex2bin (md5 ($pw . $salt . $pw));

   for ($i=strlen ($pw); $i>0; $i-=16)
   {
      if ($i > 16)
      {
         $ctx .= substr ($final,0,16);
      }
      else
      {
         $ctx .= substr ($final,0,$i);
      }
   }
   $i = strlen ($pw);
   
   while ($i > 0)
   {
      if ($i & 1) $ctx .= chr (0);
      else $ctx .= $pw[0];
      $i = $i >> 1;
   }
   $final = hex2bin (md5 ($ctx));

   for ($i=0;$i<1000;$i++)
   {
      $ctx1 = "";
      if ($i & 1)
      {
         $ctx1 .= $pw;
      }
      else
      {
         $ctx1 .= substr ($final,0,16);
      }
      if ($i % 3) $ctx1 .= $salt;
      if ($i % 7) $ctx1 .= $pw;
      if ($i & 1)
      {
         $ctx1 .= substr ($final,0,16);
      }
      else
      {
         $ctx1 .= $pw;
      }
      $final = hex2bin (md5 ($ctx1));
   }
   $passwd = "";
   $passwd .= to64 (((ord ($final[0]) << 16) | (ord ($final[6]) << 8) | (ord ($final[12]))), 4);
   $passwd .= to64 (((ord ($final[1]) << 16) | (ord ($final[7]) << 8) | (ord ($final[13]))), 4);
   $passwd .= to64 (((ord ($final[2]) << 16) | (ord ($final[8]) << 8) | (ord ($final[14]))), 4);
   $passwd .= to64 (((ord ($final[3]) << 16) | (ord ($final[9]) << 8) | (ord ($final[15]))), 4);
   $passwd .= to64 (((ord ($final[4]) << 16) | (ord ($final[10]) << 8) | (ord ($final[5]))), 4);
   $passwd .= to64 (ord ($final[11]), 2);
   return "$magic$salt\$$passwd";
}

function create_salt ()
{
   srand ((double) microtime ()*1000000);
   $salt = substr (md5 (rand (0,9999999)), 0, 8);
   return $salt;
}

function hex2bin ($str)
{
   $len = strlen ($str);
   $nstr = "";
   for ($i=0;$i<$len;$i+=2)
   {
      $num = sscanf (substr ($str,$i,2), "%x");
      $nstr.=chr ($num[0]);
   }
   return $nstr;
}

function to64 ($v, $n)
{
   global $ITOA64;
   $ret = "";
   while (($n - 1) >= 0)
   {
      $n--;
      $ret .= $ITOA64[$v & 0x3f];
      $v = $v >> 6;
   }
   return $ret;
}


Это сообщение отредактировал(а) gcc - 7.8.2008, 13:43
PM WWW ICQ Skype GTalk Jabber   Вверх
KSURi
Дата 7.8.2008, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



arto, что-то у вас не то... MD5 и crypt - разные вещи


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
gcc
Дата 7.8.2008, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



извините, md5crypt который я написал был в документации, это наверное  внутрее шифрование пхп если я правильн понял, в общем я пробовал делать по разному не получалось... вот c mysql md5 не получилось, должно работаеть наверное, кто настраивал эту фигнюшку скажите где ошибка пожалуйста!! (и желательно не md5 а какие-то другие, чтобы не в чистом виде было, хочеться закончить это и сделать стабильно, чтобы не возвращаться все время...)

Код
 UPDATE mailbox SET password = md5(6767678) where username = 'aa; 

Код
 UPDATE mailbox SET password = encrypt(6767678) where username = 'aa; 


authmysqlrc
Код

MYSQL_USERNAME          postfix
MYSQL_PASSWORD          444
MYSQL_SOCKET            /tmp/mysql.sock
MYSQL_OPT               0
MYSQL_DATABASE          postfix
MYSQL_CHARACTER_SET     utf8
MYSQL_USER_TABLE        mailbox
#MYSQL_CLEAR_PWFIELD     password
MYSQL_CRYPT_PWFIELD     password
#MYSQL_CRYPT_PWFIELD    md5crypt
MYSQL_UID_FIELD         '1981'
MYSQL_GID_FIELD         '1981'
MYSQL_LOGIN_FIELD       username
MYSQL_HOME_FIELD        '/var/spool/mail'
MYSQL_NAME_FIELD        name
MYSQL_MAILDIR_FIELD     maildir
MYSQL_QUOTA_FIELD       quota
MYSQL_WHERE_CLAUSE      active='1'


smtp.conf
Код

#password_format: crypt
pwcheck_method: auxprop
mech_list: PLAIN LOGIN DIGEST-MD5 CRAM-MD5 CRAM-SHA1
auxprop_plugin: sql
sql_usessl: yes
sql_engine: mysql
sql_hostnames: localhost
sql_user: postfix
sql_passwd: ggg
sql_database: postfix
sql_select: select password from mailbox where username = '%u@%r'
log_level: 3



Код

в логах такое:
Aug  7 12:51:43  couriertcpd: LOGIN FAILED, method=PLAIN, ip=[19]
Aug  7 12:51:48  couriertcpd: LOGIN FAILED, user=aaaaa, ip=[19]



перегрузил, не авторизирует, не работает! в чистом виде храниение паролей - работает, авторизийруе...



Это сообщение отредактировал(а) gcc - 8.8.2008, 07:42
PM WWW ICQ Skype GTalk Jabber   Вверх
ginnie
Дата 7.8.2008, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 38
Всего: 49



Приношу коллегам извинение за оффтоп!

Дело в том, что при использовании postfix + mysql через cyrus-sasl пароли в mysql должны хранится в открытом виде, иначе шифрование при аутентификации методами DIGEST-MD5 CRAM-MD5 CRAM-SHA1 работать не будет. Подробнее смотри http://www.opennet.ru/openforum/vsluhforumID1/65009.html (там есть упоминание про патч для cyrus-sasl).


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
gcc
Дата 7.8.2008, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



Код

MYSQL_CLEAR_PWFIELD     clear


постаивл так - тоже самое... 
патч там был 2 года назад был, сейчас ссылка битая

Уважаемый ginnie, а какую связку использовать чтобы заменить cyrus-sasl, и хранить пароли в безопасном виде?


PM WWW ICQ Skype GTalk Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1186 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.