Вы не можете использовать имя человека, чтобы получить объект SecureRandom. Ожидается имя в реализации генератора случайных чисел. Вы можете использовать «SHA1PRNG», так как это доступно по умолчанию. Затем вы можете заполнить генератор случайных чисел с помощью name.getBytes () и затем получить следующее случайное число.
Из Javadoc:
публичная статическая SecureRandom getInstance (алгоритм String)
выдает NoSuchAlgorithmException
Создает объект SecureRandom, который ... snip ...
Параметры:
алгоритм - название алгоритма PRNG . См. Приложение A в Спецификации и справочнике API криптографической архитектуры Java для получения информации о стандартных именах алгоритмов PRNG.
Возвращает:
новый объект SecureRandom.
Броски:
NoSuchAlgorithmException - если алгоритм PRNG не доступен в среде вызывающего.
Поскольку:
1.2
Остальные можно пропустить, потому что хэш так же хорош, как алгоритм, и добавление в него других вещей вряд ли сделает его более безопасным.
что-то вроде:
static int getUUID(String name) throws NoSuchAlgorithmException {
SecureRandom srA = SecureRandom.getInstance("SHA1PRNG");
srA.setSeed(name.getBytes());
return new Integer(srA.nextInt());
}
Я бы обычно использовал MessageDigest, но должен признать, что это довольно сложно.