Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: MD5 как пользоватся?  (Прочитано 11032 раз)
0 Пользователей и 1 Гость смотрят эту тему.
r-lynx
Гость
« : 18-03-2005 11:48 » 

Какая функция есть, какой надо файл подключать? Есть какая нить дока для чайников? Улыбаюсь
Записан
Serega
Гость
« Ответ #1 : 18-03-2005 14:14 » 

В *nix есть одна замечательнейшая утилитка, man называется
так вот, если в консоли набрать `man 3 md5` то можно получить исчерпывающую информацию о фунциях, реализующих этот алгоритм
Записан
r-lynx
Гость
« Ответ #2 : 18-03-2005 14:27 » 

Хорошо, тогда такой вопрос:
Пытаюсь использовать библиотеку MD5 от MySQL, почему то у меня не совпадают хеши, где у меня может быть ошибка?
Код:
#define MD5_LEN      16
  char *pw="testing";
  uint i;

  my_MD5_CTX context;
  uchar digest[MD5_LEN];

  my_MD5Init(&context);
  my_MD5Update(&context,(uchar*) pw,sizeof(pw)-1);
  my_MD5Final(digest,&context);

  printf("%s\n",digest);
  printf("ae2b1fca515949e5d54fb22b8ed95575\n");

  for (i=0;i<sizeof(digest);i++)
      printf("%02x",digest[i]);
  printf("\n");

Т.е. в оригинале мы должны получить ae2b1fca515949e5d54fb22b8ed95575
А получаем 28b662d883b6d76fd96e4ddc5e9ba780
кто-нибудь таким занимался?
Записан
Serega
Гость
« Ответ #3 : 18-03-2005 15:04 » 

my_MD5Update(&context,(uchar*) pw, sizeof(pw)-1);

sizeof возвращяет размер обьекта в байтах, у указателя размер обычно 4 байта
Записан
r-lynx
Гость
« Ответ #4 : 18-03-2005 15:06 » 

Так было в сырцах MySQL.
Почему же тогда оно у него работает, а у меня только после замены на strlen? )))
Записан
Serega
Гость
« Ответ #5 : 18-03-2005 15:13 » 

Не верю я что так было в сорцах, код покажи а лучше путь к файлу в сорцах и версию мускула
Записан
r-lynx
Гость
« Ответ #6 : 18-03-2005 15:22 » 

mysql-4.1.7/tools/mysqlmanager.c
Записан
Serega
Гость
« Ответ #7 : 18-03-2005 15:34 » 

У меня есть только 4.0.21, там написано так:
Код:
my_MD5Update(&context,(uchar*) buf,(uint)(buf_end-buf));
Записан
r-lynx
Гость
« Ответ #8 : 18-03-2005 15:36 » 

Ошибся...
/client/mysqlmanager-pwgen.c
Я просто из разных файлов брал, эксперементировал, у меня там мешанина получилась, но в общем суть я понял.
Спасибо.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 18-03-2005 18:45 » 

r-lynx, логичнее будет использовать ф-ии openssl, а не mysql.

mysqlmanager-pwgen.c:
char pw[17];

Читай всю ф-ию, а не одну строку!
« Последнее редактирование: 18-03-2005 19:01 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines