Encryption 创建CLI:如何使用配置文件中的密码?
我正在使用Go编写CLI,并希望将密码保存到保存在用户主目录中的配置文件中 我是否应该在保存时加密密码,并在将密码发送到CLI与之交互的服务器时解密密码 如果是这样的话,go图书馆中是否有一个好的内置图书馆可以这样做?我想让它尽可能简单,不使用任何额外的外部包。我看到的所有答案都很复杂 应该是这样的:Encryption 创建CLI:如何使用配置文件中的密码?,encryption,go,command-line-interface,Encryption,Go,Command Line Interface,我正在使用Go编写CLI,并希望将密码保存到保存在用户主目录中的配置文件中 我是否应该在保存时加密密码,并在将密码发送到CLI与之交互的服务器时解密密码 如果是这样的话,go图书馆中是否有一个好的内置图书馆可以这样做?我想让它尽可能简单,不使用任何额外的外部包。我看到的所有答案都很复杂 应该是这样的: func Encrypt(password string) string func Decrypt(password string) string 有什么想法吗?免责声明:核心库不提供现成的功能
func Encrypt(password string) string
func Decrypt(password string) string
有什么想法吗?免责声明:核心库不提供现成的功能。有一个用于Go的第三方lib(来自Docker)可以提供帮助 现代操作系统提供了以安全方式存储机密的工具和API
- 苹果:钥匙链
- Linux:特勤局
- Windows:凭据管理器API
主程序包
进口(
“github.com/docker/docker凭证助手/客户端”
“github.com/docker/docker凭据帮助程序/凭据”
)
var nativeStore=client.NewShellProgramFunc(“docker凭证加密服务”)
func main(){
c:=&credentials.credentials{
服务器URL:“https://api.github.com",
用户名:“令牌”,
秘密:“我的超级秘密令牌”,
}
客户商店(nativeStore,c)
storedCreds,err:=client.Get(nativeStore,“https://api.github.com")
}
Docker credential helpers的缺点是,它希望您安装其二进制文件,并且需要CGo。我专门添加了Docker解决方案,因为在评论中提到了它,但是有类似的库。:
- -最初是AWS vault库的一部分
- -一个纯Go实现,其目标是避免C绑定