Если вы хотите, чтобы ваши идентификаторы были непредсказуемыми для любого противника, вам следует использовать криптографически сильный генератор псевдослучайных чисел.С точки зрения размера битов 128 бит (или 16 байтов) - это хорошее число.
# if using Ruby < 1.9:
require 'active_support/secure_random'
id = SecureRandom.random_bytes(16)
Для вашего удобства также существуют методы .hex
, .base64
и .urlsafe_base64
.Они просто генерируют соответствующее количество случайных байтов, а затем кодируют случайные байты в соответствующей схеме.Например, SecureRandom.hex(16)
даст вам 32 безопасных случайных шестнадцатеричных символа.