Entropy Library for Go

A lightweight Go library to calculate the Shannon entropy of strings. This library is useful for detecting randomness in strings, such as in security applications like anomaly detection, DNS analysis, and more.
Features
- Compute Shannon entropy for any string.
- Lightweight and easy to use.
- Includes unit tests for reliability.
Installation
Install the library using go mod init entropy
:
Usage
Import the library and calculate the entropy of a string:
package main
import (
"fmt"
"github.com/chrisjchandler/entropy"
)
func main() {
input := "www.google.com"
result := entropy.Calculate(input)
fmt.Printf("Entropy of '%s' is: %.4f\n", input, result)
}
Example Output
For the input www.google.com
Entropy of 'www.google.com' is: 3.1808
API Reference
func Calculate(input string) float64
Calculates the Shannon entropy of a given string.
Parameter: input - The string for which entropy will be calculated.
Returns: float64 - The Shannon entropy value.
Testing
Run the included tests using go test:
Contributing
Contributions are welcome! Feel free to open an issue or submit a pull request.
Acknowledgments
Inspired by the need for efficient entropy calculations in DNS and anomaly detection scenarios.