计算密码的熵

问题描述 投票:0回答:1

我有一个问题,几天来我一直在尝试用 C++ 计算密码的熵。 代码如下,但由于某种原因我无法正确计算。

this is the calculations part

有人可以帮助我吗?

c++ entropy
1个回答
0
投票

你的代码对我来说看起来是正确的。我写得有点不同:

double entropy(std::string const &in) {
    std::map<char, double> frequencies;

    for (auto const &c : in)
        ++frequencies[c];

    double e = 0.0;

    for (auto const &p : frequencies) {
        double f = p.second / in.length();
        e += f * std::log2(f);
    }

    return -e;
}

...但在我看来,它们应该总是产生相同的结果(并且我已经验证我的结果与世界其他地方的各种测试字符串一致)。

© www.soinside.com 2019 - 2024. All rights reserved.