Est-ce que quelqu'un connaît un moyen de générer un nombre aléatoire RNGCryptoServiceProvider dans T-SQL sans avoir à enregistrer des assemblys .NET?Comment générer un numéro de type RNGCryptoServiceProvider dans TSQL
Répondre
SELECT CHECKSUM(NEWID())
donne un entier signé de 32 basé sur les GUID. Vous pouvez l'utiliser comme base: il est à peu près la meilleure façon
SQL Vous pouvez l'utiliser pour semer RAND (parce que RAND est la même pour toutes les lignes en une seule sélection
SELECT RAND(CHECKSUM(NEWID()))
A signé 64 bits. entier:
SELECT CAST(CHECKSUM(NEWID()) as bigint) * CAST(CHECKSUM(NEWID()) as bigint)
Avec un peu de jeu autour de vous pourriez lancer et/ou concaténer pour obtenir binaire (« multiples de 4 ») etc pour construire un tableau d'octets ... Je n'ai pas utilisé la RAND thingy mais pour émuler directement
Si vous devez générer cryptographycally secure random numbers (comme les sels pour le hachage), vous devez utiliser les fonctions CLR. La somme de contrôle, les guids et autres ne sont pas sécurisés pour les opérations de chiffrement.
La solution la plus simple consiste à utiliser un CLR scalar function qui appelle RNGCryptoServiceProvider. Notez que de nombreuses fonctions SQL Server comme EncryptByKey salent déjà l'entrée en utilisant des sels cryptographiquement sécurisés (à l'exception de EncryptByKey sur l'algorithme RC4, qui est rompu en SQL).
- 1. Meilleure pratique pour justifier un numéro numérique dans TSQL
- 2. Générer automatiquement un numéro de série dans gridview
- 3. TSQL Comment générer PRINT dans une fonction définie par l'utilisateur?
- 4. Numéro d'erreur de type Python
- 5. Comment générer un modèle avec un champ de type enum?
- 6. générer un rapport dans JIRA
- 7. Comment générer le numéro de commande effectif? (joli motif avec un écart imprévisible)
- 8. Curseur dynamique utilisé dans un bloc TSQL?
- 9. Afficher un numéro de mots dans SSRS
- 10. Comment générer un GUID dans VBScript?
- 11. Comment capturer un numéro de téléphone
- 12. Quelle est la bonne façon d'obtenir la date de début et de fin d'un numéro de semaine ISO dans TSQL?
- 13. Comment obtenir Visual Studio pour générer le remplacement de remplacement pour un événement déclaré dans un type de base?
- 14. générer un html dynamique
- 15. Coalesce et Pivot dans TSQL
- 16. Que fait "%% DatabaseEx" dans TSQL?
- 17. Générer un nom d'utilisateur
- 18. tsql: comment rejoindre cette table?
- 19. Comment obtenir un numéro Digicode avec un point dans l'iPhone
- 20. TSQL Insert Conundrum
- 21. Comment générer un fichier XML
- 22. Remplacer un numéro dans l'éditeur Netbeans avec le numéro incrémenter
- 23. Groupe MySQL par numéro top N de chaque type
- 24. Générer un objet de rapport dans ssrs
- 25. Quel est le meilleur type de champ/encodage pour stocker un numéro dans un index de recherche Zend Lucene?
- 26. Type de données XML SQL Server requête numéro
- 27. Convertir la date dans TSQL
- 28. Clojure: Comment générer un 'trie'?
- 29. Comment hors la colonne IDENTITY de la table dans TSQL
- 30. Comment "dynamiquement" générer un ensemble de fichiers?
Cela répond à nos besoins car l'aléa crypto n'est pas l'objectif; le vrai but est d'obtenir de grands nombres aléatoires. Merci. –