本篇内容主要讲解“Go怎么对int类型的数据加密”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Go怎么对int类型的数据加密”吧!
站在用户的角度思考问题,与客户深入沟通,找到河池网站设计与河池网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、成都网站建设、企业官网、英文网站、手机端网站、网站推广、申请域名、虚拟空间、企业邮箱。业务覆盖河池地区。
为什么要对 int 类型的数据加密,它的应用场景是什么?
比如:有一个商品详情界面 URL 为 /product/1001
,这种情况很容易被别人猜测,比如输入 /product/1002
、/product/1003
尝试着去查看详情,这样的话信息就暴露了,如果别人想抓数据的话,只需要将后面的 ID 递增抓取就可以了,怎么解决这个问题?
比如:有一个用户邀请码需求,用户可以将自己的邀请码分享出去,当新用户使用这个邀请码注册的时候,就会给邀请者和被邀请者双方发奖励,通过 URL /user/1001
注册的,表示用户ID为 1001 的邀请的,这样用户ID很容易被修改,怎么解决这个问题?
上面的两个场景都是需要对 int 类型的数据进行加密,避免 ID 泄露。
需要满足以下特性:
先说结果:我将 1001 加密成 1oEpdkEzWA,1002 加密成 NnlzvxEORb。
具体实现看如下代码。
首先:import "github.com/speps/go-hashids"
// 加密func Encrypt(salt string, minLength int, params []int) string { hd := hashids.NewData() hd.Salt = salt hd.MinLength = minLength h, err := hashids.NewWithData(hd) if err == nil { e, err := h.Encode(params) if err == nil { return e } } return ""}// 解密func Decrypt(salt string, minLength int, hash string) []int { hd := hashids.NewData() hd.Salt = salt hd.MinLength = minLength h, err := hashids.NewWithData(hd) if err == nil { e, err := h.DecodeWithError(hash) if err == nil { return e } } return []int{}}
到此,相信大家对“Go怎么对int类型的数据加密”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
当前标题:Go怎么对int类型的数据加密
分享URL:https://www.cdcxhl.com/article36/gcsjsg.html
成都网站建设公司_创新互联,为您提供网站维护、品牌网站设计、建站公司、标签优化、定制开发、网站设计
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联