Go语言中,如何将敏感数据存储在Redis中?
go语言:json字符串存储在redis中的特殊处理
在go语言项目中,为了保护敏感信息,例如密码,我们会使用结构体中的json:"-" 标签将其从json结果中隐藏。然而,当将该结构体转换为json字符串并存储在redis中时,敏感信息也会丢失,这有时并不是期望的结果。
对于这种情况,一个常用的解决方法是定义一个新的结构体来专门处理敏感字段。但是,有没有更好的替代方案呢?
解决方法
立即学习“go语言免费学习笔记(深入)”;
在定义新的结构体之外,还有一些可行的解决方法:
自定义标签
我们可以使用自定义标签来标记敏感字段,然后编写两个通用函数。一个函数用于序列化结构体以传输到网络客户端,并根据标签过滤某些字段;另一个函数用于将结构体序列化以存储在redis中,并保留所有字段。
代码示例:
type data struct { name string password string `json:"hideWhenNetworkRespouse"` }
通常,我倾向于编写明确的代码来处理敏感字段,以避免忘记添加标签。默认情况下,网络传输将隐藏敏感字段,而存储在redis中时,我会使用单独的结构体和函数来处理敏感字段。
以上就是Go语言中,如何将敏感数据存储在Redis中?的详细内容,更多请关注其它相关文章!