起因
发现简书一类的网站资源ID很短不知道如何实现
如 https://www.jianshu.com/p/4a8939c48cd4
这个 12位的(有没有大佬知道这个算法的,后面的问题就不用看了)
然后就考虑到雪花法但生成结果是:6887650413378670482 近20位数字,就考虑是否有其它处理方式
主要目的是想把雪花算法生成的值变得更短
如 6887650413378670482 转换成更短小的格式 16 或12位数字字符串
自己试了又发现了下面2个问题
问题
- 找了几个库 md5 加密都是32位的 有没有可以转成16位方式?
let s = "sdsqdwqdew"
// 16
abc511316658f941
// 32
4a9bf2d9abc511316658f94134f03c0d
- 数字进制转换 标准库默认支持到16进制 更高的进制有没有可以使用的库?
// 10 进制数字
let num = 6887650413378670592;
// 16 进制
5f95d98f02821000
// 32 进制
5Z5ESHW184400
测试过程用到过的库
uuid = { version = "0.8", features = ["serde", "v4"] }
# md5 = "0.7.0"
rust-crypto = "*" # md5
blob-uuid = "0.4.0"
rs-snowflake = "0.5.0"
1
共 3 条评论, 1 页
评论区
写评论根据上面提供的 python 进制转换方式实现了个 62 进制的转换
感谢 @nxd 提供: 进制转换算法链接: https://blog.csdn.net/dutsoft/article/details/79076327