Comments 7
Производительность Высокая на
Понятно на)
Надежность генератора не выше надежности seed. Допускается ли использование без явного задания seed, к слову?
Обычно ругаю ваши статьи, но тут спасибо. И всё же пара замечаний:
Seed обычно переводят как посев, а не как семя.
Посев не должен быть переменной. Он или константа (тогда, когда это необходимо), или псевдослучайное число, вычитанное из /dev/urandom. В Go для этого есть хелпер crypto/rand.Read()
И немного душноты: на Linux рандом работает только если запущен rngd. Он вычитывает энтропию из доступных устройств (TPM, процессор (в них сейчас есть выделенная инструкция), virtio, если мы внутри виртуалки, и т.д.) и "закачивает" её в urandom. В крайнем случае есть сурогатная альтернатива в виде Haveged. Без них конечно ничего не ломается, но всё что "crypto" работает медленно, а псевдослучайные числа, скажем так, не совсем случайные.
Где это обычно переводят, как "посев"? Везде пишут "семя" (seeds - семена). Семя генерируемого мира, например.
вбейте в гугл оба варианта, вот те тысячи, где "посев", там и переводят, а те четыре, где "семена" (seed и seeds вообще-то слова разные и не заменяемые просто так, но в вашем мгимо видимо не проходили)
seed - в контексте генерации случайных чисел используют как исходную точку для генерации случайных чисел, каждое значение определяет всю цепочку случайных чисел. В таком контексте это буквально "семя". Посев тут очень сложно втиснуть. Если очень хочется, то можно и так
NewChaCha8(seed)
NewChaCha8 - посев
seed - семя
Хотя слишком аграрно на мой вкус :)
Генерация надёжных псевдослучайных чисел с ChaCha8Rand в Go