NAME

Data::Entropy - entropy (randomness) management

STATUS

This module is deprecated.

For most purposes (including cryptography and security), modules like
Crypt::URandom, Crypt::SysRandom or Crypt::PRNG are more than
adequate.

Modern operating systems provide good sources of random bytes, and the
above mentioned modules work on many kinds of systems, including
Windows.

There is no need to choose an entropy source, and some users of this
module have omitted that step, and prior to version 0.008 they may
have been relying on Perl's builtin "rand" function.

Please see CPAN Author's Guide to Random Data for Security
<https://security.metacpan.org/docs/guides/random-data-for-security.html>.

DESCRIPTION

This distribution includes modules relating to sources and use of entropy.
They all interoperate, but can also be used independently.

The Data::Entropy module maintains a concept of a current selection
of entropy source.  Algorithms that require entropy, such as those in
Data::Entropy::Algorithms, can use the source nominated by this module,
avoiding the need for entropy source objects to be explicitly passed
around.  This is convenient because usually one entropy source will
be used for an entire program run and so an explicit entropy source
parameter would rarely vary.  There is also a default entropy source,
avoiding the need to explicitly configure a source at all.

The Data::Entropy::Source class manages the entropy coming from a
particular source.  Methods allow entropy to be dispensed in any quantity
required, even fractional bits.  This class acts as a layer over a raw
entropy source, which may be a normal I/O handle or a special-purpose
class.

The Data::Entropy::RawSource::* classes provide fundamental sources
of entropy.  The sources specially supported are an OS-supplied entropy
collector, downloads from servers on the Internet, and cryptographic
fake entropy.

The Data::Entropy::Algorithms module contains a collection of fundamental
algorithms that use entropy.  There are random number generators, and
functions to shuffle arrays and perform related tasks.

INSTALLATION

	perl Module.PL
	make
	make test
	make install

AUTHOR

Andrew Main (Zefram) <zefram@fysh.org>

Maintained by Robert Rothenberg <perl@rhizomnic.com>

COPYRIGHT

Copyright (C) 2006, 2007, 2009, 2011, 2025-2026
Andrew Main (Zefram) <zefram@fysh.org>

LICENSE

This module is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
