go-bindata使用,将配置文件打包到可执行程序中,防止别人修改配置文件

本文介绍了一种将敏感配置文件编译进可执行文件的方法,通过go-bindata工具实现,并提供了详细的操作步骤与代码示例。

 

通常后端服务启动需要的配置文件,然而配置文件中包含了敏感信息,出于安全考虑,将配置文件直接编译到可以执行文件中。.toml,.json,.yaml等后缀的文件都可以打包,我使用的是.toml。根据业务需要来选择。原理都一样

操作步骤:

1. 安装go-bindata包

go get -u github.com/go-bindata/go-bindata/...

2. 查看是否安装成功

执行: go-bindata -help,出现如图,表示安装成功

 3. 执行编译语句 

go-bindata -pkg=tool -o=./tool/conf.go test.toml
-pkg : 表示目录名,目录名不存在会自动创建在当前目录下

-o:表示将配置文件生成的.go文件放到那个目录的那个文件下

test.toml: 要打包的配置文件

4. 代码示例,使用的配置文件如下

# test.toml文件内容示例
[general]
listen="0.0.0.0:9090"
package main

import (
	"bytes"
	"fmt"
	"github.com/spf13/viper"
)

func main(){
	data, _ := Asset("test.toml")
	fmt.Println(string(data))
	conf(data)
	fmt.Println("listen:",C.General.Listen)

}


var C Config

type Config struct {
	General struct {
		Listen
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值