You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Entropy value calculated without a leading coefficient, it means it could be a float value in range (0, 8), where 0.0 is an absolute order, 8.0 is an absolute chaos.
Building and some specific
Application is CMake-based and could be compiled on any platform that have CMake 3.0+ installed
Just create build directory in the project catalog mkdir build, enter cd build it and execute cmake ..
Boost required for compilation, we use console-based progress-bar to make entropy calculation look pretty, Boost Test for unit-testing etc.
I had to provide std::codecvt<std::uint8_t> specialization for binary file streams. MS compiler provide one, but GCC does not (and doesn't have to as it's not a C++ Standard requirement)
Specific installation does not required, application is portable
Applications
Could be used to detect whether file was encrypted or archived (the value should be close to 8.0)
Could be used for building correlation between data format and its entropy (dataset should be big enough)
Could be used for estimation between distribution properties and entropy
Application is intentionaly as simple as possible
About
The purpose of a library is to calculate entropy of a file or a bytes sequence. It may work as a detector of encrypted files, as they have the highest entropy. Entropy is calculated according to Shannon's definition, where 0.0 is the order, 8.0 is the chaos