Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — FCC 2022

ProgramaçãoLinguagens de programação
Código
fc061119
Banca
FCC
Órgão
DETRAN-AP
Ano
2022
Cargo
Analista de Tecnologia da Informação
Considere a seguinte função PHP:crypt(string $str, string $salt = ?): stringConsidere que str é a string a ser encriptada e salt é uma string opcional que define a base hash da encriptação. Se não fornecida, essa base será sempre
  1. ACRYPT_STD_DES - Codificação Standard DES-based com um salt de 2 caracteres.
  2. BCRYPT_EXT_DES - Codificação Extended DES-based com um salt de 9 caracteres.
  3. CCRYPT_MD5 - Codificação MD5 com um salt de 12 caracteres começando com %1$.
  4. DCRYPT_BLOWFISH - Codificação Blowfish com um salt de 16 caracteres começando com $2%.
  5. Egerada randomicamente pelo PHP cada vez que chamar esta função.
Revelar gabarito e comentário

GabaritoE — gerada randomicamente pelo PHP cada vez que chamar esta função.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Função crypt() do PHP

Gabarito: letra E. Se o parâmetro salt não for informado, a função crypt() do PHP gera aleatoriamente um salt a cada chamada, conforme a documentação oficial da linguagem. Nenhuma das constantes apresentadas nas alternativas A-D é o comportamento padrão quando o salt é omitido.

A questão testa o conhecimento sobre o comportamento da função crypt() do PHP quando o parâmetro opcional salt não é fornecido. As alternativas A a D descrevem constantes de hash específicas que exigem um salt explícito para funcionar. Caso o salt seja omitido, o PHP automaticamente gera um salt aleatório – e não utiliza nenhuma dessas constantes como padrão.

Alternativa A — ❌ Incorreta

CRYPT_STD_DES exige um salt de 2 caracteres. Não é o valor padrão quando o salt é omitido.

Alternativa B — ❌ Incorreta

CRYPT_EXT_DES exige um salt de 9 caracteres. Também não é o comportamento padrão.

Alternativa C — ❌ Incorreta

CRYPT_MD5 exige um salt de 12 caracteres começando com $1$. Não é o padrão.

Alternativa D — ❌ Incorreta

CRYPT_BLOWFISH exige um salt de 16 caracteres começando com $2a$ (ou variantes). Não é o padrão.

Alternativa E — ✅ Correta ⟵ GABARITO

Quando o salt não é fornecido, o PHP gera um salt aleatório a cada chamada da função. Esse comportamento é intencional para garantir segurança, evitando que desenvolvedores usem salts fixos e vulneráveis.

NÃO CAIA NESSA!

A banca lista constantes de hash conhecidas para induzir o candidato a achar que uma delas seria o padrão. Na realidade, a omissão do salt dispara uma geração randômica – nenhuma constante fixa é usada. Com treino, você identifica rapidamente que a descrição "sempre" aponta para um comportamento dinâmico, não para uma constante pré-definida.

Gabarito: letra E

Link permanente: /questoes/fc061119