因此,我正在为一个主要是私有服务器的用户提供一个非常短的列表,并将这些用户的登录数据存储在一个对象中。该对象的结构类似于 {"username":"hash"}。我想知道使用类似的东西if(users[username) {timingSafeCompare(hash,users[username])}
是否被认为是时间安全的。
我想过使用类似的东西
let u = false
for(un in users) {
if(timingSafeCompare(username,un) && timingSafeCompare(hash,users[un])) u = username
}
return u
但同样,我不确定这是否时间安全。
最好的方法是什么?