当前位置: 首页 > 后端技术 > PHP

使用唯一id生成唯一字符串如订单号、唯一邀请码等,反序列化原始id

时间:2023-03-29 19:41:08 PHP

Hashids包用于从整数生成唯一字符串(例如:通过对id进行加解密隐藏真实id)从整数生成简短的唯一id官方地址支持多种语言:JavaScript、Ruby、Python、Java、Scala、PHP、Perl,Perl6,Swift,Clojure,Objective-C,C,C++11,D,F#,Go,Erlang,Lua,Haskell,OCaml,Elixir,Rust,Smalltalk,ColdFusion,Kotlin,Nim,VBA,Haxe,Crystal,Elm,ActionScript,Bash,R,TSQL,PostgreSQL,PLpgSQL,Dart,Io,Juliaandfor.NET下面主要介绍golang的用法:第一步,下载包gogetgithub.com/speps/go-hashidscodepackagemainimport"fmt"import"github.com/speps/go-hashids"funcmain(){hd:=hashids.NewData()hd.Salt="wozuishuai"//盐值,可以根据需要使用不同的盐到不同的业务Valuehd.MinLength=8//生成唯一字符串的最小长度,注意:是最小值,不是固定的h,_:=hashids.NewWithData(hd)e,_:=h.Encode([]我nt{2,45,1,44})//参数都是切片,当我们fmt.Println(e)d,_:=h.DecodeWithError(e)fmt.Println(d)}注:1.hd.salt="thisismysalt"盐值,可以根据不同的业务使用不同的盐值2.hd.MinLength=30生成唯一字符串的最小长度,注意:是最小值,不是固定的,生成的值可能比这个值长3.h.Encode([]int{45,434,1313,99}),接收参数为slice,I很多时候,我们使用的是唯一id操作,所以只需要传[]int{1},一个元素就够了4.h.DecodeWithError(e),反序列化你原来的id,也是slice类型5。有兴趣你可以看看源码包。很简单