String 如何比较两个人的两个字符串列表,而不在两个人之间共享实际字符串?

String 如何比较两个人的两个字符串列表,而不在两个人之间共享实际字符串?,string,hash,comparison,string-comparison,String,Hash,Comparison,String Comparison,例如,列表A的所有者如何在没有看到列表B的情况下识别列表B中存在多少字符串 List A List B abcdef abcdef ghijkl mnopqr stuvwx stuvwx yz0123 结果应该是两个。如中所示,列表A在列表B中有两个字符串。如果列表是以开放文本共享的,这就足够容易了。但是,如果列表A的所有者没有看到列表B,怎么能找到这个答案呢?您可以对两个列表中的字

例如,列表A的所有者如何在没有看到列表B的情况下识别列表B中存在多少字符串

List A            List B
abcdef            abcdef
ghijkl            mnopqr
stuvwx            stuvwx
yz0123            

结果应该是两个。如中所示,列表A在列表B中有两个字符串。如果列表是以开放文本共享的,这就足够容易了。但是,如果列表A的所有者没有看到列表B,怎么能找到这个答案呢?

您可以对两个列表中的字符串进行散列,然后比较散列。

如果用户A和B是对等方,没有真正的“系统”来处理它们之间的事务,那么:

List A            List B
abcdef            abcdef
ghijkl            mnopqr
stuvwx            stuvwx
yz0123            
  • 每个用户将其列表输入会话或客户端软件
  • 会话或客户端软件对列表中的成员进行哈希运算
  • 然后,会话或客户端软件查询数据库,以从用户B获得匹配的哈希值
  • 如果其他用户需要将其列表与用户A进行比较,会话或客户端软件会将用户A列表的所有哈希值存储在数据库中的用户A记录下

  • 但是,如果两个用户之间有一个真正的系统(服务器),它可以查看每个人的列表条目,并将匹配项反馈给用户。

    您可以对它们进行散列并比较散列——这只是一个想法。您能否澄清“查看”的含义?是否存在阻止所有者查看彼此列表的安全问题?A的所有者可以知道列表中的哪些字符串与列表B匹配吗?回复:John——列表A的所有者不应该看到打开的文本字符串“mnopqr”。(例如)Re:Jonathan——理想情况下并非如此,只有重叠/重复计数才是关键的,但只有在可能的情况下。