为什么要通过计算两个字符的异或来比较两个字符串?

问题描述 投票:-1回答:2

[一段时间以前,我发现了此函数(不幸的是,我不记得它来自哪里,很可能来自某些Python框架),该函数比较两个字符串并返回bool值。了解这里发生的事情非常简单。在char之间找到xor会返回1(真),因为它们不匹配。

def  cmp_strings(str1, str2):
    return len(str1) == len(str2) and sum(ord(x)^ord(y) for x, y in zip(str1, str2)) == 0

但是为什么要使用此功能?与str1==str2不同吗?

python string algorithm string-comparison
2个回答
0
投票

您正确地说,我们可以使用str1 == str2。我不能说为什么作者要对该函数进行编程,但是我可以说该函数可以替代与“ ==”

进行比较

0
投票

比较相似长度的任何字符串需要花费相似的时间。当字符串敏感时,用于安全性。通常,字符串是密码哈希。

© www.soinside.com 2019 - 2024. All rights reserved.