Hashids 包
用来把整数生成惟一字符串(比方:通过加密解密 id 来暗藏实在 id)
generate short unique ids from integers
官网地址
- 反对多种语言:
JavaScript, Ruby, Python, Java, Scala, PHP, Perl, Perl 6, 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, Julia and for .NET
上面次要介绍 golang 的用法:
- 第一步, 下载包
go get github.com/speps/go-hashids
- 上代码
package main
import "fmt"
import "github.com/speps/go-hashids"
func main() {hd := hashids.NewData()
hd.Salt = "wozuishuai" // 盐值, 能够依据不必的业务, 应用不同的盐值
hd.MinLength = 8 // 生成惟一字符串的最小长度, 留神: 是最小, 不是固定
h, _ := hashids.NewWithData(hd)
e, _ := h.Encode([]int{2, 45, 1, 44}) // 参数的都是 slice, 当咱们
fmt.Println(e)
d, _ := h.DecodeWithError(e)
fmt.Println(d)
}
留神:
1.hd.Salt = "this is my salt" 盐值, 能够依据不必的业务, 应用不同的盐值
2.hd.MinLength = 30 生成惟一字符串的最小长度, 留神: 是最小, 不是固定, 生成的有可能比该值要长
3.h.Encode([]int{45, 434, 1313, 99}), 接管参数是 slice, 咱们大多数时候应用惟一 id 操作, 所以只须要传 []int{1}, 一个元素即可
4.h.DecodeWithError(e), 反序列化出你的原始 id, 也是 slice 类型
5. 有趣味的能够去看看源码包. 很简略