go build 如何混淆全局静态字符串变量?

有时候程序里会使用全局const字符串,比如token或者password

const (
    Token    = "112233"
    Password = "445566"
)

这个时候,编译成可执行文件的时候,是可以把可执行程序当作文本读取是可以直接搜索到上面的Tokenpassword的,我是想有没有什么选项,可以自动混淆编译后的程序,让其不可直接读取const字符串

查找应用程序字符串可以查到全局静态变量
clipboard.png
这个怎么隐藏呢,我知道c++clang有字符串混淆,golang怎么设置

阅读 5.9k
3 个回答

我觉得你可以直接把密码加个密,字符串混淆应该是类似的原理,只是这个转化加密的过程是库帮忙实现的,但是你也可以自己实现。

用下面的编译指令把调试信息和符号信息都删掉试试,还有没有
go build -ldflags "-s -w"

这些全局常量编译后已经写到二进制文件中的,转换至少要在编译的时候做两件事:
1.加密这些常量
2.修改读取接口

只能通过外部工具。太费劲了,而且个人觉得意义不大。在实际开发中,这些敏感信息肯定不是直接写死在程序中的,要么配置(这个也不靠谱),要么环境变量,要么加密写在数据库里。

1 篇内容引用
推荐问题
宣传栏