The official page for SHISHUA is here.
This PyPI package provides bindings for Python.
from shishua import SHISHUA
rng = SHISHUA(0)
buffer = rng.random_raw(1 << 30) # 1 GiB
# It takes 1s on my laptop.
NumPy support:
import numpy
from shishua import SHISHUA
buffer = numpy.random.Generator(SHISHUA()).bytes(1024)
print(buffer.hex())
Returns a generator instance initialized with the given seed.
The seed
determines the sequence of numbers that this function returns:
print(SHISHUA('seed').random_raw(10).hex())
#> 1aa64a39f6949b969e97
print(SHISHUA('seed').random_raw(10).hex())
#> 1aa64a39f6949b969e97
print(SHISHUA('different seed, different values').random_raw(10).hex())
#> 216a0889a858eb57ae30
The seed can be either:
- A list of four 64-bit integers, to map exactly to the functionality provided by the underlying SHISHUA algorithm,
- A string, which is hashed into the four integers,
- A single integer, which sets the first of the four,
- If not provided (or undefined), a random seed is generated from the system's CSPRNG.
The object returned by calling SHISHUA()
also has the following methods,
which all tap into the stream generated by the seed:
.random_raw(size)
, which returns abytes
filled with random bytes.