在tornado .web 模块中有一个函数叫做_time_independent_equals
:
def _time_independent_equals(a, b):
if len(a) != len(b):
return False
result = 0
for x, y in zip(a, b):
result |= ord(x) ^ ord(y)
return result == 0
它用于比较安全 cookie 签名以及名称。
但是关于这个功能的实现,是不是很复杂a==b
?