Créé le 09 Dec 2022 - Mis à jour le 04 Jul 2023 - Créé par Fabien Berthoux - rubyrandom
Générer une chaîne aléatoire en Ruby est un moyen simple de sécuriser des mots de passe et de données sensibles. C'est également un moyen utile de créer des chaînes aléatoires qui peuvent être utilisées pour des applications telles que des codes promo, des numéros de série, des clés d'activation et plus encore. En Ruby, il existe plusieurs méthodes pour générer des chaînes aléatoires.
La méthode la plus simple consiste à utiliser la fonction SecureRandom.random_bytes. Cette méthode prend en entrée un entier qui spécifie le nombre d'octets à retourner et retourne une chaîne aléatoire d'octets. Vous pouvez ensuite utiliser la méthode String#unpack pour convertir ces octets en une chaîne alphanumérique. Par exemple, le code suivant génère une chaîne aléatoire de 20 caractères :
require 'securerandom'
SecureRandom.random_bytes(20).unpack('H*')[0]
# => "d1c7b279dbc9f9b8e14e2c2d07e2d888eac8b1c4"
Si vous souhaitez générer une chaîne aléatoire d'une longueur spécifique, vous pouvez utiliser la méthode SecureRandom.hex. Cette méthode prend en entrée un entier qui spécifie la longueur de la chaîne aléatoire à retourner et retourne une chaîne aléatoire de caractères hexadécimaux. Par exemple, le code suivant génère une chaîne aléatoire de 8 caractères :
require 'securerandom'
SecureRandom.hex(8)
# => "419f7f45"
Si vous souhaitez générer une chaîne aléatoire contenant uniquement des caractères spécifiques, vous pouvez utiliser la méthode SecureRandom.base64. Cette méthode prend en entrée un entier qui spécifie la longueur de la chaîne aléatoire à retourner et retourne une chaîne aléatoire de caractères base64. Par exemple, le code suivant génère une chaîne aléatoire de 8 caractères composée uniquement de lettres et de chiffres :
require 'securerandom'
SecureRandom.base64(8)
# => "6mZK/1Kd"
Pour générer un mot de passe aléatoire, vous pouvez utiliser la méthode SecureRandom.urlsafe_base64. Cette méthode prend en entrée un entier qui spécifie la longueur de la chaîne aléatoire à retourner et retourne une chaîne aléatoire de caractères base64 plus sécurisée. Par exemple, le code suivant génère un mot de passe aléatoire de 10 caractères composé de lettres, de chiffres et de caractères spéciaux :
require 'securerandom'
SecureRandom.urlsafe_base64(10)
# => "7cE_a-_i8!"
Si vous souhaitez générer une chaîne aléatoire contenant uniquement un ensemble spécifique de caractères, vous pouvez utiliser la méthode Array#sample. Cette méthode prend en entrée un tableau et retourne un élément aléatoire du tableau. Par exemple, le code suivant génère une chaîne aléatoire de 8 caractères composée uniquement de lettres minuscules :
('a'..'z').to_a.sample(8).join
# => "mfkxjxdm"
Vérifier si un tableau contient un objet ruby-on-rails |
Valider une date dans rails ? ruby-on-rails |
Valider lors de la destruction dans rails ruby-on-rails |
Valider l'attribut uniquement s'il est présent (uniquement si l'utilisateur le remplit) ruby-on-rails |
Validation rails requise pour la numéricité même si la présence n'est pas réglée à vrai ruby-on-rails |
Validation des longueurs minimale et maximale d'une chaîne de caractères mais en autorisant le vide ruby-on-rails |
Validation de messages personnalisés pour rails 3 ruby-on-rails |