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.
hash(x)
hash_file(path)
An object.
A character vector of paths to the files to be hashed.
For hash()
, a single character string containing the hash.
For hash_file()
, a character vector containing one hash per file.
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.
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] "f3b28e876c66fd190ce66d9be3a2c3a3" "cdb3a24318136e74f38209c219ca104b"
# If you need a single hash for multiple files,
# hash the result of `hash_file()`
hash(hashes)
#> [1] "96c3494aef2ae9d012e2b7428b6259b9"