entropy alternatives and similar packages
Based on the "Cryptography" category.
Alternatively, view entropy alternatives based on common mentions on social networks and blogs.
-
cryptohash
DISCONTINUED. efficient and practical cryptohashing in haskell. DEPRECATED in favor of cryptonite -
cipher-blowfish
DISCONTINUED. DEPRECATED by cryptonite; A collection of cryptographic block and stream ciphers in haskell -
cipher-aes
DEPRECATED - use cryptonite - a comprehensive fast AES implementation for haskell that supports aesni and advanced cryptographic modes. -
crypto-pubkey
DISCONTINUED. DEPRECATED - use cryptonite - Cryptographic public key related algorithms in haskell (RSA,DSA,DH,ElGamal) -
cipher-aes128
DISCONTINUED. Based on cipher-aes, but using a crypto-api interface and providing resulting IVs for each mode -
crypto-numbers
DISCONTINUED. DEPRECATED - use cryptonite - Cryptographic number related function and algorithms -
crypto-random
DISCONTINUED. DEPRECATED - use cryptonite - Cryptographic random class and entropy gatherer with safe API for haskell
InfluxDB - Purpose built for real-time analytics at any scale.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of entropy or a related project?
Popular Comparisons
README
Introduction
This package allows Haskell users to easily acquire entropy for use in critical
security applications by calling out to either windows crypto api, unix/linux's
getrandom
and /dev/urandom
. Hardware RNGs (currently RDRAND, patches
welcome) are supported via the hardwareRNG
function.
Quick Start
To simply get random bytes use getEntropy
:
#!/usr/bin/env cabal
{- cabal:
build-depends: base, entropy, bytestring
-}
import qualified Data.ByteString as BS
import System.Entropy
main :: IO ()
main = print . BS.unpack =<< getEntropy 16
-- Example output: [241,191,215,193,225,27,121,244,16,155,252,41,131,38,6,100]
Faster Randoms from Hardware
Most x86 systems include a hardware random number generator. These can be faster but require more trust in the platform:
import qualified Data.ByteString as B
import System.Entropy
eitherRNG :: Int -> IO B.ByteString
eitherRNG sz = maybe (getEntropy sz) pure =<< getHardwareEntropy sz
main :: IO ()
main = print . B.unpack =<< eitherRNG 32
This package supports Windows, {li,u}nix, QNX, and has preliminary support for HaLVM.
Typically tested on Linux and OSX - testers are as welcome as patches.