Token OTP

Uma senha de uso único (OTP) é uma sequência de números e/ou caracteres que é gerada e enviada a um usuário para ser usada em uma única tentativa de login ou transação.

OTP baseada em tempo (TOTP)

Este tipo de OTP é baseado no tempo, pois fornece uma janela de tempo dentro da qual o código da OTP será válido. Em geral, os intervalos têm de 30 segundos. Se o usuário não inserir o código de OTP dentro do intervalo especificado, ele deverá solicitar um novo.


Exemplo

Para gerar um código OTP é possível de várias formas, como nesse exemplo abaixo.

TipoSegredoAlgoritmo
TOTP Base32HE2DKMZZGY======SHA256

Deve-se gerar códigos de 6 dígitos a cada 30 segundos.


uses  
  OTP;

var  
  LToken: UInt32;  
begin  
  LToken := TOTPCalculator.New  
    .SetSecret('HE2DKMZZGY======')  
    .SetAlgorithm(TAlgorithm.SHA256)  
    .Calculate;  
end.

Repositório: GitHub