R中的MD5文件哈希函数返回不同的值?

史蒂夫

无论谁执行哈希计算以及在何处执行MD5哈希都应返回相同的值。

但是,在同一文件上使用三种不同的方法,我们会看到三种不同的答案(!?)。

是文件。

根据Amazon Web Services的MD5哈希为:

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"

使用该digest的MD5哈希

library(digest)
digest("Downloads/pfd.RDS", algo=c("md5"))
# "2b049aba0269e46d35780c3e7d29a916"

使用openssl的MD5哈希

library(openssl)
md5("Downloads/pfd.RDS")
# "8ceabf9bdd146ed12ba89533cd593d12"

我无法解释这一点。我希望这三个值都相同,因为它们都对同一文件应用了相同的算法(MD5),但三个值都不相同。

无论使用哪种方法生成文件的MD5哈希值,哈希值为何都不相同,最重要的是,如何计算R中的哈希值使其与AWS提供的MD5哈希值匹配(即a921f713fbd730a51814fb6602048c16)?

更新

在mac终端中md5 Downloads/pfd.RDS返回a921f713fbd730a51814fb6602048c16(与AWS值一致)。尚不清楚原因digest::digest()openssl::md5()价值观是否不同。

弗里克先生

如果要在该路径上散列文件的内容,则需要告诉每个函数。尝试

digest("Downloads/pfd.RDS", file=TRUE, algo="md5")

md5(file("Downloads/pfd.RDS", open="rb"))

否则,您将对路径名本身进行哈希处理。

在简单的情况下,它们返回相同的值

cat("hello", file="hello.txt")
digest("hello.txt", file=TRUE, algo="md5")
# [1] "5d41402abc4b2a76b9719d911017c592"
md5(file("hello.txt", open="rb"))
# md5 5d:41:40:2a:bc:4b:2a:76:b9:71:9d:91:10:17:c5:92 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在R中创建列的md5哈希?

来自分类Dev

Windows批处理比较md5sum与md5文件内容

来自分类Dev

MD5对于相同的输入返回不同的值

来自分类Dev

忽略md5文件

来自分类Dev

MD5返回不同的哈希码-Python

来自分类Dev

使用javascript的文件的MD5哈希

来自分类Dev

从GitHub版本中哪里获得MD5哈希值?

来自分类Dev

当文件来自system32文件夹时,文件的哈希值MD5和SHA256会有所不同。为什么?

来自分类Dev

PHP crypt()-返回的md5哈希

来自分类Dev

并行检查md5文件

来自分类Dev

为什么同一文件的两个tarball的md5哈希值不同?

来自分类Dev

比较python中两个文件的md5哈希值

来自分类Dev

MD5哈希值不同

来自分类Dev

修改zip文件的md5哈希值的最快方法

来自分类Dev

每个文件创建独立的MD5文件递归

来自分类Dev

MD5哈希函数在Python中更改数据

来自分类Dev

如何小写文件中的所有MD5哈希?

来自分类Dev

有没有一种方法可以在md5文件中添加注释?

来自分类Dev

为什么C#和Java应用程序为同一文件计算不同的MD5值?

来自分类Dev

为目录中的每个.fastq文件生成一个单独的.md5文件?

来自分类Dev

同一目录中同一文件的不同MD5Sum

来自分类Dev

当文件来自system32文件夹时,文件的哈希值MD5和SHA256会有所不同。为什么?

来自分类Dev

将md5哈希值添加到大CSV文件中

来自分类Dev

我需要md5文件目录的文件名

来自分类Dev

从文件中删除出现在另一个MD5文件中的行

来自分类Dev

修改zip文件的md5哈希值的最快方法

来自分类Dev

R库中MD5哈希的区别-序列化对象的MD5

来自分类Dev

为什么网站提供文件的 MD5 哈希值?

来自分类Dev

PHP 和 C# 中不同的 MD5 哈希值

Related 相关文章

热门标签

归档