احسان رضایی
احسان رضایی
خواندن ۱ دقیقه·۵ سال پیش

Hashids، تولید یک شناسه منحصر به فرد از اعداد صحیح

یه کتابخانه متن باز و کوچیکه که شناسه هایی کوتاه، منحصر به فرد و غیر متوالی از اعداد تولید میکنه.

به عنوان مثال عدد 347 تبدیل به رشته ی “yr8” یا آرایه ای شامل اعداد [27, 986] تبدیل به “3kTMd” میشه.

شما همچنین میتونید شناسه ها رو decode کنید، یعنی رشته های تولید شده به وسیله Hashids برگشت پذیر خواهند بود. حتی طول رشته تولید شده قابل تعریفه.
مثالی که توی وب شاید بارها دیدین:

https://url.ir/lqY9X

قابلیت ها.

  • ایجاد شناسه های کوتاه، منحصر به فرد و قابل بازگشت از اعداد مثبت و صفر.
  • سفارشی سازی با استفاده از salt.
  • طول رشته تولید شده افزایشی هست. قبلا گفتم میتونید طول Hash رو تعریف کنید اما این موضوع بستگی به اعداد شما و salt هم داره و ممکنه به این دو علت و ماندگاری Hash زیادتر بشه.
  • حجم کمی داره(حدود 350 خط کد)، سریع هست و به کتابخانه دیگری وابستگی نداره.

این کتابخانه در 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 و .NET قابل استفاده است.


python version.

hashids = Hashids(salt=&quotthis is my salt&quot) id = hashids.encode(1, 2, 3) numbers = hashids.decode(id)

php version.

$hashids = new Hashids\Hashids('this is my salt'); $id = $hashids->encode(1, 2, 3); $numbers = $hashids->decode($id);

javascript version.

var hashids = new Hashids(&quotthis is my salt&quot), id = hashids.encode(1, 2, 3), numbers = hashids.decode(id);



وبلاگ من اینجاست...

hash
#ISTJ / Backend Developer / Gopher / PHP(Yii2, Laravel) / [ http://www.developit.ir ]
شاید از این پست‌ها خوشتان بیاید