[golang] json序列化时自动将id加密

inspii · · 1133 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

对于有规则的数据索引,比如用户ID,商品ID,订单编号,很容易第三方直接遍历抓取资源。采用liamylian/json-hashids进行加密,可以有效避免这类情况发生。但因为是对等加密,需注意该加密算法并不安全,使用时需注意场景,详情请见hashids

package main

import(
    "fmt"
    "github.com/liamylian/json-hashids"
    "time"
)

var json = jsonhashids.NewConfigWithHashIDs("abcdefg", 10)

type Book struct {
    Id    int    `json:"id" hashids:"true"` // 这里要给id打上hashids的tag
    Name  string `json:"name"`
}

func main() {
    book := Book {
        Id:          1,
        Name:        "Jane Eyre",
    }
    
    bytes, _ := json.Marshal(book)
    
    // 输出: {"id":"gYEL5rKBnd","name":"Jane Eyre"}
    fmt.Printf("%s", bytes)
}

有疑问加站长微信联系(非本文作者)

本文来自:Segmentfault

感谢作者:inspii

查看原文:[golang] json序列化时自动将id加密

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1133 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传