hash()
hashes an arbitrary R object.hash_file()
hashes the data contained in a file.
The generated hash is guaranteed to be reproducible across platforms that have the same endianness and are using the same R version.
Value
For
hash()
, a single character string containing the hash.For
hash_file()
, a character vector containing one hash per file.
Details
These hashers use the XXH128 hash algorithm of the xxHash library, which generates a 128-bit hash. Both are implemented as streaming hashes, which generate the hash with minimal extra memory usage.
For hash()
, objects are converted to binary using R's native serialization
tools. On R >= 3.5.0, serialization version 3 is used, otherwise version 2 is
used. See serialize()
for more information about the serialization version.
Examples
hash(c(1, 2, 3))
#> [1] "702f7dd6e81ea41d26ea3b248627ece4"
hash(mtcars)
#> [1] "d0487363db4e6cc64fdb740cb6617fc0"
authors <- file.path(R.home("doc"), "AUTHORS")
copying <- file.path(R.home("doc"), "COPYING")
hashes <- hash_file(c(authors, copying))
hashes
#> [1] "75e0b18fa50ddd8296f143c587e3eb43" "cdb3a24318136e74f38209c219ca104b"
# If you need a single hash for multiple files,
# hash the result of `hash_file()`
hash(hashes)
#> [1] "fb8152f9b31bfbcf4e8778c4cbc8c6b7"