toutes les options
buster  ] [  bullseye  ] [  sid  ]
[ Paquet source : golang-github-nebulouslabs-fastrand  ]

Paquet : golang-github-nebulouslabs-fastrand-dev (0.0~git20170512.60b6156-1)

Liens pour golang-github-nebulouslabs-fastrand-dev


Ressources Debian :

Télécharger le paquet source golang-github-nebulouslabs-fastrand :

Responsables :

Ressources externes :

Paquets similaires :

10x faster than crypto/rand

fastrand GoDoc ( Go Report Card (

go get

fastrand implements a cryptographically secure pseudorandom number generator. The generator is seeded using the system's default entropy source, and thereafter produces random values via repeated hashing. As a result, fastrand can generate randomness much faster than crypto/rand, and generation cannot fail beyond a potential panic during init().

Unlike both crypto/rand and math/rand, fastrand provides significant speedups when called using parallelism. In fact, fastrand can even outperform math/rand when using enough threads.

Packages uses something similar to the Fortuna algorithm, which is used in FreeBSD as its /dev/random. The techniques used by fastrand are known to be secure, however the specific implementation has not been reviewed extensively. Use with caution.

The general strategy is to use crypto/rand at init to get 32 bytes of strong entropy. From there, the entropy concatenated to a counter and hashed repeatedly, providing a new 64 bytes of random output each time the counter is incremented. The counter is 16 bytes, which provides strong guarantees that a cycle will not be seen throughout the lifetime of the program.

The sync/atomic package is used to ensure that multiple threads calling fastrand concurrently are always guaranteed to end up with unique counters, allowing callers to see speedups by calling concurrently, without compromising security.

Autres paquets associés à golang-github-nebulouslabs-fastrand-dev

  • dépendances
  • recommandations
  • suggestions
  • enhances

Télécharger golang-github-nebulouslabs-fastrand-dev

Télécharger pour toutes les architectures proposées
Architecture Taille du paquet Espace occupé une fois installé Fichiers
all 8,0 ko36,0 ko [liste des fichiers]