我知道如何在终端中使用 GCC 和 CC 编译 C 和 C++ 源文件,但是我想知道编译后在这些文件中包含密码是否安全。
例如..我检查用户输入的某个密码,例如 123,但似乎已编译的 C/C++ 程序可能会被反编译。
无论如何,有没有办法编译 C/C++ 源文件,同时保持源完全隐藏。
如果没有,任何人都可以提供一个加密输入的小示例,然后检查密码,例如:(SHA1,MD5)
不,您无法安全地将密码包含在源文件中。可执行文件中的字符串是纯文本形式,任何拥有文本编辑器的人都可以轻松查看您的密码。
一个不太安全但会践踏某些人的方法是存储加密的字符串。所以,基本上:
enc = "03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4"
bool check() {
pass = getPassFromUser();
encpass = myHashingFunction(pass);
return pass == encpass;
}
这会阻止一些人,但实际上并没有更安全,对于程序集黑客来说,用另一个具有已知明文值的 sha256 编码字符串替换可执行文件中的“enc”字符串相对简单。
即使您使用单独的身份验证服务器,设置一个伪造的身份验证服务器并欺骗您的程序连接到该伪造的身份验证服务器也不困难。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)