entropy
A Rust library for calculating Shannon entropy and metric entropy of byte sequences.
Installation
Add this to your Cargo.toml:
[]
= "0.4"
Usage
use ;
// Calculate Shannon entropy (in bits)
let h = shannon_entropy;
assert_eq!;
// Works with byte slices too
let h = shannon_entropy;
// Calculate metric entropy (shannon_entropy / input.len())
let m = metric_entropy;
assert_eq!;
What is Shannon Entropy?
Shannon entropy measures the average amount of information contained in a message, expressed in bits. For byte data:
| Entropy Value | Meaning |
|---|---|
| 0 | Completely uniform (e.g., "aaaa") |
| 8 | Maximum randomness (all 256 byte values equally distributed) |
Common Use Cases
- Cryptography - Measuring randomness of keys or random number generators
- Data compression - Estimating how compressible data is
- Malware analysis - Detecting packed or encrypted executables
- Password strength - Estimating password complexity