Pular para o conteúdo

passwordVerify

Servidor Utilidades

Confere se uma senha corresponde a um hash.

bool passwordVerify ( string hash, string senha )
NomeTipoPadrãoDescrição
hashstring—O hash guardado, como veio de passwordHash.
senhastring—A senha digitada pelo jogador.

true se a senha corresponde. false se não corresponder ou se o hash estiver corrompido.

local contas = {}
addCommandHandler("registrar", function(source, cmd, senha)
if source == false or not senha then return end
local nome = getPlayerName(source)
if contas[nome] then
outputDebugString("a conta de " .. nome .. " já existe", 2)
return
end
local hash = passwordHash(senha)
if not hash then
outputDebugString("não foi possível criar a conta de " .. nome, 1)
return
end
contas[nome] = hash -- guarde o hash, nunca a senha
setElementData(source, "logado", true)
end)
addCommandHandler("entrar", function(source, cmd, senha)
if source == false or not senha then return end
local nome = getPlayerName(source)
local hash = contas[nome]
-- a mesma resposta para conta inexistente e senha errada:
-- assim ninguém descobre quais contas existem tentando adivinhar
if not hash or not passwordVerify(hash, senha) then
outputDebugString("login recusado para " .. nome, 2)
return
end
setElementData(source, "logado", true)
end)