Last active
July 24, 2020 16:36
-
-
Save DiegoQueiroz/8c1330cb60e0c2f2e91e89144a4c9f0a to your computer and use it in GitHub Desktop.
This file contains 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
SELECT | |
RIGHT(ABS(CAST(CRYPT_GEN_RANDOM(str_size) AS BIGINT)), str_size) crypto_rand | |
FROM | |
(select 8 str_size) var; -- "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 RAND, pois é razoávelmente segura para aplicações que necessitam gerar números aleatórios reais, que não devam ser descobertos. A função RAND utiliza apenas uma sequência pseudo-aleatória com base no relógio do sistema que, embora difícil, pode ser descoberta.
A função CRYPT_GEN_RANDOM gera uma sequencia pseudo-aleatória com base em uma semente aleatória real, obtida da piscina de entropia do sistema (utiliza como base a Microsoft CryptoAPI).