За последние 24 часа нас посетили 21742 программиста и 1020 роботов. Сейчас ищут 658 программистов ...

blowfish проблемка

Тема в разделе "Прочие вопросы по PHP", создана пользователем dapperkop, 17 апр 2014.

  1. dapperkop

    dapperkop Активный пользователь

    С нами с:
    26 сен 2013
    Сообщения:
    890
    Симпатии:
    0
    Доброго времени суток!

    Возник такой вопрос.

    Есть хэш (предположим такой "$2x$10$Ikc9h0LnFYHjL3FoFqDM3uZZzk/QXjtIWaZ.iVd2l725T0dOXtcAC"), есть соль ("Ikc9h0LnFYHjL3FoFqDM33") и есть дата (предположим, такая "2014-04-17 14:00:00").

    Я хочу из этих данных получить еще один хэш...
    Код (Text):
    1. echo crypt('$2x$10$Ikc9h0LnFYHjL3FoFqDM3uZZzk/QXjtIWaZ.iVd2l725T0dOXtcAC|2014-04-17 14:00:00', '$2x$10$'.'Ikc9h0LnFYHjL3FoFqDM33');
    Получаю вот это: $2x$10$Ikc9h0LnFYHjL3FoFqDM3uJncnUsRo7lJXDOLGq8bHVDotbneimjW

    Но вот загвоздка в том, что если я изменяю что-то из часов-минут-секунд, то хэш при этом остается неизменным.

    Такое ощущение, что строка обрезается после n символов... Когда то натыкался на статью, где что-то говорилось по этому поводу (там была вообщем-то не совсем такая ситуация, но мне бы она помогла), но это было так давно и сейчас я ничего найти не могу.

    Так вот, действительно ли хэшируемая строка обрезается или причина в другом?
     
  2. BlackScorp

    BlackScorp Новичок

    С нами с:
    16 апр 2014
    Сообщения:
    54
    Симпатии:
    0
    Адрес:
    Germany
    я думаю што нелся просто так добавить день с | , поробуйте с $
     
  3. dapperkop

    dapperkop Активный пользователь

    С нами с:
    26 сен 2013
    Сообщения:
    890
    Симпатии:
    0
    Не, не получается... Тот же результат. После 72 символа почему-то строка не учитывается... Видимо и правда есть ограничение, хотя очень странно, сколько жил - думал, что не важно какую строку ты пытаешься захэшировать...
     
  4. BlackScorp

    BlackScorp Новичок

    С нами с:
    16 апр 2014
    Сообщения:
    54
    Симпатии:
    0
    Адрес:
    Germany
  5. dapperkop

    dapperkop Активный пользователь

    С нами с:
    26 сен 2013
    Сообщения:
    890
    Симпатии:
    0
    Да, придется, походу как-то иначе хэш делать...

    Я Вы соль в базе не храните? Ну это я просто интересуюсь...
     
  6. BlackScorp

    BlackScorp Новичок

    С нами с:
    16 апр 2014
    Сообщения:
    54
    Симпатии:
    0
    Адрес:
    Germany
    просмотри хаш, в нем сразу и соль
    $2x$10$Ikc9h0LnFYHjL3FoFqDM3uZZzk/QXjtIWaZ.iVd2l725T0dOXtcAC|2014-04-17 14:00:00
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    А где ж её еще хранить? =)
     
  8. BlackScorp

    BlackScorp Новичок

    С нами с:
    16 апр 2014
    Сообщения:
    54
    Симпатии:
    0
    Адрес:
    Germany
    https://www.youtube.com/watch?v=T4NTdRvIrdk

    если хакерь получит соль то она ему не чиго не даст, соль для того штобы одинаковые пароли другой хаш имели.
    $10$ ета сумма главная, чем више тем лучще(но может тогда логин долше длитса)
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    мягкий знак на конце слов женского рода пишется. как "соль"

    хэш, хеш
    калька с английского обычно пишется как произносится на языке оригинала
     
  10. dapperkop

    dapperkop Активный пользователь

    С нами с:
    26 сен 2013
    Сообщения:
    890
    Симпатии:
    0
    )) Просто я сам не додумался, что можно хранить вместе с хэшем... Вот так вот...
     
  11. BlackScorp

    BlackScorp Новичок

    С нами с:
    16 апр 2014
    Сообщения:
    54
    Симпатии:
    0
    Адрес:
    Germany
    блин, не легко на трех языках разговаривать :D
     
  12. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    дорогу осилит идущий

    Добавлено спустя 48 секунд:
    это оно само так работает, типа стандартное теперь поведение пхп. чтобы не думать. а то все думали, думали, а получалась фигня.
     
  13. dapperkop

    dapperkop Активный пользователь

    С нами с:
    26 сен 2013
    Сообщения:
    890
    Симпатии:
    0
    ))) Ни че не понял)))
     
  14. BlackScorp

    BlackScorp Новичок

    С нами с:
    16 апр 2014
    Сообщения:
    54
    Симпатии:
    0
    Адрес:
    Germany
    ранше
    Код (Text):
    1.  
    2. $password = $_POST['password'];
    3. $salt = md5(time());
    4. $hash = md5($password.$hash);
    5. $sql ="INSERT INTO users(hash,salt) VALUES($hash,$salt)";
    сеичас

    Код (Text):
    1.  
    2. $password = $_POST['password'];
    3. $options = array(
    4. 'cost'=>20
    5. );
    6. $hash = password_hash($password,PASSWORD_BCRYPT,$options); //все в одном и стоимость и соль и хеш
    7. $sql = "INSERT INTO users(hash) VALUES($hash)"
     
  15. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    раньше все делали сами как умеют. теперь в пхп есть функция, которая даёт тебе строку, ты эту строку пишешь в бд и усё. внутри строки и алгоритм указан, и соль, и хеш и всё круто.