Hash
Hash[expr]
给出表达式 expr 的一个整数哈希码.
Hash[expr,type]
给出表达式 expr 的一个指定类型的整数哈希码.
Hash[expr,type,"format"]
按指定格式给出哈希码.
更多信息
- 对于同样的表达式 expr,Hash[expr,…] 总是给出相同的结果.
- 可能的哈希码类型包括:
-
"Adler32" Adler 32 位循环冗余码校验 "BLAKE2b-512" 512 位 BLAKE2b 编码 "BLAKE2s-256" 256 位 BLAKE2s 编码 {"BLAKE2b",b} 任意长度 b 最大高达 512 位的 BLAKE2b 编码 {"BLAKE2s",b} 任意长度 b 最大高达 256 位的 BLAKE2s 编码 {"BLAKE2bp",b} BLAKE2b 的多核并行版本 {"BLAKE2sp",b} BLAKE2s 的多核并行版本 {"BLAKE2xb",b} 任意长度 b 最大高达 256 GiB 的 BLAKE2xb 编码 {"BLAKE2xs",b} 任意长度 b 最大高达 128 GiB 的 BLAKE2xs 编码 "CRC32" 32 位循环冗余码校验 "Keccak224" 224 位 Keccak 编码 "Keccak256" 256 位 Keccak 编码 "Keccak384" 384 位 Keccak 编码 "Keccak512" 512 位 Keccak 编码 {"Keccak",b} 长度 b 为 224、256、384、512 位的 Keccak 编码 "MD2" 128 位 MD2 编码 "MD4" 128 位 MD4 编码 "MD5" 128 位 MD5 编码 "RIPEMD160" 160 位 RIPEMD 编码 "RIPEMD160SHA256" RIPEMD-160 后跟 SHA-256(在比特币中使用) "SHA1" 160 位 SHA-1 编码 "SHA224" 224 位 SHA 编码 "SHA256" 256 位 SHA 编码 "SHA256SHA256" 双 SHA-256 编码(在比特币中使用) "SHA384" 384 位 SHA 编码 "SHA512" 512 位 SHA 编码 {"SHA",b} 长度 b 为 224、256、384、512 位的 SHA 编码 "SHA3-224" 224 位 SHA3 编码 "SHA3-256" 256 位 SHA3 编码 "SHA3-384" 384 位 SHA3 编码 "SHA3-512" 512 位 SHA3 编码 {"SHA3",b} 长度 b 为 224、256、384、512 位的 SHA3 编码 "Expression" 表达式哈希码(默认) - 对于可变长度的哈希值,长度 b 必须是8的倍数.
- "Expression" 哈希码是根据表达式的内部表示计算出来的,并且可能因计算机系统或不同版本的 Wolfram 语言而异.
- 对于在字节序列上操作的哈希码类型(如 "SHA"),Hash[expr,…] 根据以下内容先将 expr 转换成字节:
-
expr 基于 ToString[FullForm[expr]] 的字节 "string" string 的 UTF-8 表示中的字节 ByteArray[…] 字节数组中的文字字节 - 可能的格式包括:
-
"Integer" 整数(默认) "DecimalString" 十进制字符串 "HexString" 十六进制字符串 "HexStringLittleEndian 小端 (little-endian) 字节顺序的十六进制字符串 "Base36String" base-36 字母数字字符串 "Base64Encoding" Base64 编码 "ByteArray" 以显式的字节数组形式给出的哈希码
范例
打开所有单元关闭所有单元范围 (12)
属性和关系 (12)
"DecimalString" 是 "Integer" 的字符串版本,必要的情况下添上零:
"HexString" 是基数为 16 的表示,必要的情况下添上零:
"Base36String" 是基数为 36 的表示,必要的情况下添上零:
"Base64Encoding" 用 Base64 编码对结果的字节进行编码:
可以通过使用 ByteArray 作为中间结果获得重复的哈希码:
FileHash[file,code] 实际上等同于 Hash[ReadByteArray[file],code]:
可能存在的问题 (3)
Wolfram Research (1988),Hash,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Hash.html (更新于 2022 年).
文本
Wolfram Research (1988),Hash,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Hash.html (更新于 2022 年).
CMS
Wolfram 语言. 1988. "Hash." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2022. https://reference.wolfram.com/language/ref/Hash.html.
APA
Wolfram 语言. (1988). Hash. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/Hash.html 年