不错的哈希函数适用于无序字符串集合?

3

是否有一种方法可以对多个无序的字符串集进行哈希处理,使得在这些集合中,元素的值相同。 例如:

set1 = [ "ab3567cd", "123", "789012" ]

set2 = [ "789012", "ab3567cd", "123" ]

set3 = [ "123", "789012", "ab3567cd" ]

并且能够对这些集合进行哈希处理,而不需要将它们排序。

是否存在这样的哈希函数?


1
哈希表用什么语言? - Blockchain Office
Golang语言 - Quenkar
1个回答

0

如果不对它们进行排序使它们具有相同的位置,你将始终获得不同的哈希值。

这些都是不同的字符串:

ab3567cd 123 789012

789012 ab3567cd 123

123 ab3567cd 789012

相同的字符串是否总是具有相同的SHA-256值?

什么是哈希算法以及它如何工作?

文件哈希如何工作?

更新:

有两种解决方案,但我不知道这是否是正确的方法。

这只是一个逻辑示例,它可能不是正确的函数/计数方式!

  1. 解决方案

如果使用正确的函数计算集合的值。

set1 = [ "ab3567cd", "123", "789012" ]

计数:

 "ab3567cd" (+ or *) "123" (+ or *) "789012" = RESULT_VALUE

当您对 RESULT_VALUE 进行哈希时,对于 set1、set2 和 set3,您将始终获得相同的哈希值。

RESULT_HASH = HASH(RESULT_VALUE)
  1. Solution

set1 = [ "ab3567cd", "123", "789012" ]

create hash1 from "ab3567cd"

create hash2 from "123"

create hash3 from "789012"

数量:

hash1 (+ or *) hash2 (+ or *) hash3 = RESULT_VALUE

当您哈希RESULT_VALUE时,对于set1、set2和set3,您将始终获得相同的哈希值。

RESULT_HASH = HASH(RESULT_VALUE)

这个逻辑示例适用于所有能够进行哈希的语言。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接