CONTEÚDO
- Visão Geral
- Exemplo de utilização
- Geração de alfanuméricos seguros randômicos
- Geração de números seguros randômicos
01. VISÃO GERAL
A linguagem de programação Progress não fornece de forma nativa um utilitário para gerar números ou alfanuméricos que sejam randômicos de forma segura, sendo assim, houve a necessidade de implementar um utilitário que efetue esta geração com técnicas seguras.
02. EXEMPLO DE UTILIZAÇÃO
O utilitário que será apresentado a seguir, utiliza a função GENERATE-RAMDOM-KEY juntamente com o algoritmo DES_CBC_56, no qual este último fará considera o SSLC 1.1.1 expedido pela Progress, o qual utiliza CSPRNG baseado no Sistema Operacional.
Foram implementados duas Procedures para retornar um alfanumérico ou números, ambos com a utilização das funções e algoritmos descritos anteriormente.
Geração de alfanuméricos seguros randômicos
O trecho de código a seguir, apresenta um exemplo de chamada ao utilitário "utp/ut-rng.r" para que retorne um alfanumérico randômico:
DEFINE VARIABLE hRNG AS HANDLE NO-UNDO. DEFINE VARIABLE cRandomAlpha AS CHARACTER NO-UNDO. RUN utp/ut-rng.r PERSISTENT SET hRNG. RUN generateRandomSecureAlpha IN hRNG (OUTPUT cRandomAlpha). MESSAGE cRandomAlpha VIEW-AS ALERT-BOX.
OUTPUT |
---|
Número alfanumérico aleatório gerado (formato CHARACTER em "HEXADECIMAL") Exemplo: d3ad7d64d49e747c |
Geração de números seguros randômicos
O trecho de código a seguir, apresenta um exemplo de chamada ao utilitário "utp/ut-rng.r" para que retorne um número randômico de acordo com a quantidade de dígitos desejado:
DEFINE VARIABLE hRNG AS HANDLE NO-UNDO. DEFINE VARIABLE cRandomNumber AS CHARACTER NO-UNDO. RUN utp/ut-rng.r PERSISTENT SET hRNG. RUN generateRandomSecureNumber IN hRNG (INPUT 6, OUTPUT cRandomNumber). MESSAGE cRandomNumber VIEW-AS ALERT-BOX.
INPUT | OUTPUT |
---|---|
Quantidade de números desejados | Número aleatório gerado (formato CHARACTER) Exemplo: 990316 |
A funcionalidade de geração dos números randômicos utiliza como base a geração do alfanumérico (apresentada anteriormente), portanto quanto maior for a quantidade de dígitos desejada, menor será a probabildiade de repetição dos números.<br\><br\> A quantidade máxima suportada são 16 digitos.IMPORTANTE!