Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Nome

Tipo

Descrição

Obrigatório

Referência

cText

character

Texto(senha) em formato plaintext que será utilizada para gerar o Hash Digest via Argon2id.

X


cSalt

character

Texto que será utilizado pelo algoritmo para geração do hash. Garante que, se dois usuários tiverem a mesma senha, seus hashes finais sejam completamente diferentes no banco de dados (isso se o Salt de ambos também for diferente).

X


nMemoryCost

numeric

Define a quantidade de memória RAM (em Kibibytes) que o algoritmo é obrigado a usar. Valor padrão = 65536



nIterations

numeric

Define o número de passagens (iterações) que o algoritmo faz sobre a memória alocada. Valor padrão = 2



nThreads

numeric

Define o número de núcleos (threads) do processador que trabalharão simultaneamente para calcular o hash. Valor Sempre deve ser menor que o parâmetro nLanes. Valor padrão = 2



nHashLen

numeric

Define o tamanho final do hash gerado (o retorno da função). Valor padrão = 128



nLanes

numeric

Define em quantas partes a memória do Argon2id é dividida para processamento paralelo. Valor padrão = 2 Sempre deve ser maior que o parâmetro nThreads. Valor padrão = nThreads



Retorno

Em caso de sucesso, retorna o hash digest gerado no tamanho do nHashLen definido na chamada da função.

Em caso de falha, retorna uma string vazia ("").

Importante

  • É imprescindível salvar todos os argumentos (com exceção da senha) que foram utilizados para geração do hash pois os exatos mesmos parâmetros são necessários para validar a senha no futuro. Para maior segurança, é aconselhável que cada senha tenha seu próprio Salt aleatório.

...

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
User Function ExemploArgon2id()
  Local argon2id_hash := ""
  
  Local cPassword := "123456"
  Local cSalt := "saltsalt"
  Local nMemoryCost := 65536
  Local nIterations := 2
  Local nThreads := 2
  Local nHashLen := 128
  Local nLanes := 2

  argon2id_hash := Argon2id(cPassword, cSalt, nMemoryCost, nIterations, nThreads, nHashLen, nLanes)
  
  Local argon2id_hash_size := len(argon2id_hash)
  conout(cValToChar(argon2id_hash_size))

Return

Abrangência

26.3.0.0


Referências

RFC9106: https://www.rfc-editor.org/rfc/rfc9106.html