字符串值的安全性如何?

考赫

抱歉,这是一个愚蠢的问题,但是我到处都是,找不到任何好的信息。采取以下程序:

#include <string>
#include <iostream>

constexpr std::string correct_pin = "1874";
std::string response;

int main() {
    std::cout << "Enter a pin.";
    std::cin >> response;

    if (response == correct_pin) {
        std::cout << "That is the correct pin!";
    }
    else {
        std::cout << "Incorrect pin.";
    }
}

用户是否能够以某种方式挖掘内存并找到文字"1874",并说明它必须是引脚?如果是这样,有什么方法可以使字符串更安全?同样,这可能是一个愚蠢的问题,但是就像我说的那样,我找不到一个好的答案。

百合

是的,1874将存储在内存和可执行文件中。

您可以使用加密库对正确的引脚进行加盐和散列,并存储加盐和散列的值。过去我使用crypto ++。试图通过使用散列值来找出原始值几乎是不可能的,他们将不得不对其进行暴力破解。尽管可执行文件的其余部分并不安全,所以它们可以修改响应和正确引脚的比较。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章