如何不在软件中对字符串进行硬编码?

How to not hardcode a String in a software?

我想知道如何不对字符串进行硬编码,例如某些软件或远程连接软件中的 IP。

我听说一位网络安全专家发现了一个在他的软件中进行黑客攻击的人的 IP,并据此跟踪了他。

那么,如何避免将我的 IP 硬编码到软件中,如果我硬编码,人们如何找到我的 IP?

您可以执行以下任一操作:1) 从文件中读取字符串,2) 从数据库中读取字符串,3) 将字符串作为命令行参数传递

一种选择是使用非对称加密,您可以使用它从服务器请求私有字符串(参见 SSL/TLS)。 如果你想在本地进行,你应该 write/read 到一个文件(OS 应该通过用户访问来处理授权)

有多种方法可以隐藏硬编码字符串。最简单的方法之一是将这些位与另一个字符串或重复常量进行异或。因此,您可以拥有两个硬编码的短数组,当将它们异或在一起时,会生成您想要隐藏的字符串。

如果你想隐藏它,加密它,你在 github 上经常看到这个作为 "secret"。 始终加密重要数据,切勿使用像 ip 这样的硬编码值,因为这很容易更改,某种 dns 解析器可以帮助您保持正常。 在这种特定情况下,您提到使用 DNS 指向代理将有助于屏蔽端点 ip。