Durante uma aula sobre segurança digital, Joana desenvolveu um sistema de autenticação utilizando hash para validar o acesso de usuários. Ao analisar a função utilizada no sistema, Joana afirmou: "A função calcula_hash transforma a senha em um valor numérico que pode ser comparado durante a verificação de acesso." Essa afirmação é verdadeira ou falsa? Selecione uma alternativa:
Questão
Durante uma aula sobre segurança digital, Joana desenvolveu um sistema de autenticação utilizando hash para validar o acesso de usuários. Ao analisar a função utilizada no sistema, Joana afirmou: "A função calcula_hash transforma a senha em um valor numérico que pode ser comparado durante a verificação de acesso." Essa afirmação é verdadeira ou falsa? Selecione uma alternativa:
def calcula_hash(senha):
valor = 0
for letra in senha:
valor = valor + ord(letra)
return valor
Alternativas
A) Verdadeira.
B) Falsa.
Explicação
A função mostrada é:
def calcula_hash(senha):
valor = 0
for letra in senha:
valor = valor + ord(letra)
return valor
- Ela percorre cada caractere da string
senha. - Para cada caractere, calcula
ord(letra), que retorna um número inteiro (código Unicode do caractere). - Soma todos esses inteiros em
valore retorna esse total.
Portanto, essa função de fato transforma a senha em um valor numérico (a soma dos códigos dos caracteres) e esse valor pode ser comparado depois na verificação de acesso (comparando o “hash” calculado na hora com o “hash” armazenado).
Observação: apesar de ser uma “função de hash” no sentido geral (mapeia uma entrada para um número), não é um hash seguro criptograficamente, pois é fácil gerar colisões (senhas diferentes com a mesma soma). Mas isso não torna a afirmação da Joana falsa.
Alternativa correta: (A).