Воскресенье, 28 Марта 2021 г. 15:27
+ в цитатник
Lem0nti: Здравствуйте.
Столкнулся с такой проблемой - boost 1.70 не так считает md5 как 1.71.
В сети легко ищется такой пример работы с md5:
#include
#include
#include uuid/detail/md5.hpp>
#include algorithm/hex.hpp>
using boost::uuids::detail::md5;
std::string toString(const md5::digest_type &digest)
{
const auto charDigest = reinterpret_cast(&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 https://forum.sources.ru/index.php?showtopic=421289&view=findpost&p=3845756
Метки:
C/C++:
Прочее
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-