MD5 га sh должен возвращать одно и то же значение независимо от того, кто и где выполняет расчет га sh.
Тем не менее, используя три разных метода в одном файле, мы видим три разных ответа (!?).
Здесь файл.
MD5 га sh в соответствии с Amazon Web Services :
library(dplyr)
"https://collidr-api.s3-ap-southeast-2.amazonaws.com/pfd.RDS" %>% curlGetHeaders %>% .[6] %>% trimws %>%
strsplit(., "ETag: ") %>% .[[1]] %>% .[2] %>%
{ substr(., 2, nchar(.)) } %>% { substr(., 1, nchar(.) - 1)}
# "a921f713fbd730a51814fb6602048c16"
MD5 га sh с использованием библиотеки digest
-
library(digest)
digest("Downloads/pfd.RDS", algo=c("md5"))
# "2b049aba0269e46d35780c3e7d29a916"
А MD5 га sh с использованием openssl
библиотеки -
library(openssl)
md5("Downloads/pfd.RDS")
# "8ceabf9bdd146ed12ba89533cd593d12"
Я не могу этого объяснить. Я ожидал, что все три значения будут одинаковыми, поскольку все они применяют один и тот же алгоритм (MD5) к одному и тому же файлу, но все они разные.
Вопрос
Почему не ha sh имеет одинаковые значения независимо от метода, использованного для создания MD5 га sh файла, и, что наиболее важно, как рассчитать ha sh в R так, чтобы он соответствовал MD5 га sh при условии на AWS (т.е. a921f713fbd730a51814fb6602048c16
)?
ОБНОВЛЕНИЕ
В ма c терминал md5 Downloads/pfd.RDS
возвращает a921f713fbd730a51814fb6602048c16
(соответствует значению AWS). До сих пор неясно, почему значения digest::digest()
и openssl::md5()
отличаются.