Árvore de páginas


CONTEÚDO

  1. Visão Geral
  2. Exemplo de utilização
    1. Geração de alfanuméricos seguros randômicos
    2. 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:

PROCEDURE generateRandomSecureAlpha
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:

PROCEDURE generateRandomSecureNumber
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.
INPUTOUTPUT
Quantidade de números desejados

Número aleatório gerado (formato CHARACTER)

Exemplo: 990316


IMPORTANTE!

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.