我正在使用Go编写CLI,我想将密码保存到保存在用户主目录中的配置文件中。
我是否应该在保存时加密密码并在将密码发送到服务器时解密,CLI与之交互?
如果是这样,go库中有一个很好的内置库吗?我希望尽可能简单,不使用任何额外的外包装。我看到的所有答案都非常复杂。
应该是这样的:
func Encrypt(password string) string
func Decrypt(password string) string
有什么想法吗?
答案 0 :(得分:1)
免责声明:核心库不提供开箱即用的功能。 Go 的第三方库(来自 Docker)可以提供帮助。
现代操作系统提供工具和 API 以安全的方式存储机密。
Git 和 Docker 使用这些工具来存储您的凭据。
为 Docker Engine v1.11 贡献 Docker credential helpers 的 David Calavera 在 2016 年撰写了一篇题为 Stop saving credential tokens in text files 的文章。该文章描述了该问题、Linux 的一个简单实现并展示了如何使用该库。< /p>
execl
Docker credential helper 的缺点是它希望你安装它的二进制文件并且需要 CGo。 我特别添加了 Docker 解决方案,因为它在评论中被提及,但 有类似的库: