SEPARADOR_SALT_HASH
SEPARADOR_SALT_HASH
Separador utilizado para separar o salt do hash gerado.
Classe para geração de checksums para valores arbitrários.
Um checksum ("soma de verificação") é um código gerado para testar a integridade dos dados transmitidos por um canal qualquer de comunicação.
Na web, é especialmente importante que valores enviados e recebidos através do browser pelos métodos GET, POST, COOKIE, etc. sejam corretamente validados pelo servidor antes de serem operados, tendo em vista que os mesmos podem facilmente ser manipulados e informações vazadas para terceiros que não deveriam ter acesso a essas informações (por exemplo, um usuário ser capaz de visualizar os dados relativos a qualquer usuário simplesmente modificando o parâmetro userId enviado via GET).
O valor de checksum gerado por esta classe NÃO é criptograficamente seguro, uma vez que a função password_hash() do PHP trunca os valores de $password maiores do que 72 caracteres (tornando impossível o uso deste método de geração de hash para valores arbitrários). No entanto, ele é adequado para a assinatura de parâmetros enviados e recebidos em uma aplicação normal; o salt para o hash é gerado através da função openssl_random_pseudo_bytes(), que é menos previsível do que uniqid(), rand(), microtime() e outros métodos usuais de geração de salt.
$arrayWrapper : \Numenor\Php\ArrayWrapper
Instância do objeto de encapsulamento das operações de array.
$stringWrapper : \Numenor\Php\StringWrapper
Instância do objeto de encapsulamento das operações de string.
__construct(\Numenor\Php\ArrayWrapper $arrayWrapper, \Numenor\Php\StringWrapper $stringWrapper, string $chave = '', string $algoritmo = 'sha512')
Método construtor da classe.
| \Numenor\Php\ArrayWrapper | $arrayWrapper | Instância do objeto de encapsulamento das operações de array. |
| \Numenor\Php\StringWrapper | $stringWrapper | Instância do objeto de encapsulamento das operações de string. |
| string | $chave | Chave utilizada na geração do checksum. Caso não seja informado, a chave padrão definida será utilizada. |
| string | $algoritmo | Identificador do algoritmo usado para gerar o checksum. |
se o algoritmo de hash informado é inválido ou não está instalado no servidor.
setChavePadrao(string $chave)
Define a chave utilizada na geração do checksum.
| string | $chave | Chave definida para utilização na geração dos checksums. Note que é possível alterar a chave uma vez definida (para permitir que chaves diferentes sejam utilizadas na geração de checksums diferentes), mas não é possível definir uma chave vazia. |
se a chave informada é nula.
gerarChecksum(mixed $valor, boolean $encoded = false) : string
Gera um checksum para o valor informado, opcionalmente encodado em base64 para transmissão via canais que aceitem apenas texto ASCII.
| mixed | $valor | Valor para o qual o checksum deve ser gerado. |
| boolean | $encoded | Indica se o checksum gerado deve ser encodado com base64. |
se a chave definida para utilização na geração de checksums não foi definida.
O checksum gerado, no formato salt + separador + hash.
gerarChecksumLista(\stdClass $listaValores, boolean $encoded = false) : \stdClass
Gera um checksum para a lista de valores informados (como uma coleção de pares nome => valor), opcionalmente encodados em base64 para transmissão via canais que aceitem apenas texto ASCII.
| \stdClass | $listaValores | Lista de valores para os quais os checksums devem ser gerados. |
| boolean | $encoded | Indica se os checksums gerados devem ser encodados com base64. |
Uma cópia da lista de valores originais, acrescentada dos checksums (identificados como atributos nome + 'Checksum').
validarChecksum(mixed $valor, string $checksum) : boolean
Valida um valor contra o checksum informado para o mesmo.
| mixed | $valor | Valor a ser conferido. |
| string | $checksum | Checksum informado para o valor. |
se a chave definida para utilização na geração de checksums não foi definida.
O checksum é válido para o valor informado?