Apple 的Hasher 文档告诉 Hasher 在每次执行时生成不同的哈希值,并且哈希不应该在多次执行中持续存在。
不要在程序的执行过程中保存或以其他方式重用哈希值。Hasher 通常是随机播种的,这意味着它会在程序的每次新执行时返回不同的值。Hasher 实现的哈希算法本身可能会在标准库的任意两个版本之间发生变化。
但是,我确实需要一种方法来生成可跨多个会话重现的哈希。我正在尝试使用哈希值来区分可哈希结构的标签。由于输入数据可能来自不同的执行,如果我使用Hasher
and ,哈希将不匹配Hashable
。
我考虑过编写杂音散列算法的实现,但这些通常适用于字符串值,而不是可选结构。
在 Swift 中是否有替代 Hasher 的方法,我可以使用它来获得具有任意结构的可重现哈希?是否有接受起始种子的散列函数?
谢谢您的帮助!