热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用唯一id生成唯一字符串订单号唯一邀请码等唯一字符串并可以反序列化原id

Hashids包用来把整数生成惟一字符串(比方:通过加密解密id来暗藏实在id)generateshortuniqueidsfromintegers官网地址反对多种语言:JavaS

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.有趣味的能够去看看源码包.很简略


推荐阅读
author-avatar
ekuuu
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有