抱歉,这是一个愚蠢的问题,但是我到处都是,找不到任何好的信息。采取以下程序:
#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] 删除。
我来说两句