https://mp.weixin.qq.com/s/xibbDekG0clzUpt5g_-1tg
01项目简介hashids.net 是一个小型的 .NET 包,能够将数字(如 347)或数字数组(如 [27, 986])转换为简短且难以猜测的字符串(如 yr8 或 3kTMd)。而且这些字符串可以被解码回原始数字,非常适合用于隐藏实际的数据库 ID、将多个参数合并为一个短字符串 ID,或者生成用户友好的唯一标识符。
02功能特点
1、生成短唯一 ID支持从整数生成短字符串 ID,仅支持非负整数(包括零)。生成的 ID 不是顺序的,即使输入是递增的,输出也会保持不可预测性。
2、支持多种输入支持单个数字或数字数组(支持 int 和 long 类型)。支持自定义字符集和盐值(salt),确保生成的哈希对每个应用都是唯一的。
3、可配置性支持设置最小哈希长度,确保生成的字符串至少达到指定长度。尝试避免生成包含基本英文脏话的哈希值。
4、可逆性虽然哈希是可逆的,但设计上尽量保证其不可预测性,适合用于隐藏敏感信息(但不适合用于加密)。
03使用方法
1、安装依赖库Install-Package hashids.net
2、编码示例var hashids = new Hashids("this is my salt");var hash = hashids.Encode(12345); // 编码单个数字 NkK9var hashLong = hashids.EncodeLong(666555444333222L); // 编码长整型数字 KVO9yy1oO5jvar hashMultiple = hashids.Encode(683, 94108, 123, 5); // 编码多个数字 aBMswoO2UB3Sj
3、解码示例
var hashids = new Hashids("this is my salt");var numbers = hashids.Decode("NkK9"); // 解码字符串var numberSingle = hashids.DecodeLong("KVO9yy1oO5j"); // 解码长整型数字var numberLong = hashids.Decode("aBMswoO2UB3Sj"); // 解码多个数字04项目地址
https://github.com/ullmark/hashids.net
文档更新时间: 2025-02-17 09:27 作者:admin