Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.191.189.120] |
|
Сообщ.
#1
,
|
|
|
Здравствуйте.
Столкнулся с такой проблемой - boost 1.70 не так считает md5 как 1.71. В сети легко ищется такой пример работы с md5: #include <iostream> #include <algorithm> #include <iterator> #include <boost/uuid/detail/md5.hpp> #include <boost/algorithm/hex.hpp> using boost::uuids::detail::md5; std::string toString(const md5::digest_type &digest) { const auto charDigest = reinterpret_cast<const char *>(&digest); std::string result; boost::algorithm::hex(charDigest, charDigest + sizeof(md5::digest_type), std::back_inserter(result)); return result; } int main () { std::string s; while(std::getline(std::cin, s)) { md5 hash; md5::digest_type digest; hash.process_bytes(s.data(), s.size()); hash.get_digest(digest); std::cout << "md5(" << s << ") = " << toString(digest) << '\n'; } return 0; } Вот здесь мы можем его опробовать на разных версиях буста - https://wandbox.org/permlink/CJ0MMunEhYCRe6Cd . Результат с версией 1.70 будет один, а с версией 1.71 другой. При этом правильный - 1.70. Подскажите, пожалуйста, что изменилось в версии 1.71? Как теперь правильно получать md5? ЗЫЖ Если кому лень переключать, проверять, то вот я записал видео с экрана для демонстрации того что происходит: https://www.youtube.com/watch?v=EiRa2a6iB94 |
Сообщ.
#2
,
|
|
|
Похоже, что вызвано вот этим изменением. Рекомендуют задефайнить BOOST_UUID_COMPAT_PRE_1_71_MD5
|
Сообщ.
#3
,
|
|
|
Спасибо. Всё теперь в норме.
|