Last active
July 24, 2020 16:36
-
-
Save DiegoQueiroz/67781ded043f6b7fff0c65d98843a5d7 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- Para executar esse código é necessário ter acesso ao pacote DBMS_CRYPTO | |
-- GRANT EXECUTE ON SYS.DBMS_CRYPTO TO <seu_usuario>; | |
SELECT | |
LPAD(DBMS_CRYPTO.RANDOMNUMBER, str_size, '0') crypto_rand | |
FROM | |
(SELECT 8 str_size FROM dual); -- "8" é o tamanho da string a ser gerada |
Essas funções geram sequências de DÍGITOS (números apenas) e devem ser utilizadas apenas quando essa limitação existir. Se a combinação de letras, números ou até símbolos puder ser considerada, esses métodos NÃO devem ser utilizados, pois são significativamente menos seguros.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Esta forma de geração é superior a baseada em DBMS_RANDOM, pois é razoávelmente segura para aplicações que necessitam gerar números aleatórios reais, que não devam ser descobertos. O pacote DBMS_RANDOM utiliza apenas uma sequência pseudo-aleatória com base no relógio do sistema que, embora difícil, pode ser descoberta.
O pacote DBMS_CRYPTO gera uma sequencia pseudo-aleatória com base em uma semente aleatória real, obtida da piscina de entropia do sistema.