Vad är Sqids?

Sqids är ett öppen-källkods-bibliotek som låter dig generera korta unika identifierare från nummer. Dessa ID:n är URL-säkra, kan koda flera nummer och innehåller inte vanliga svordomar. Läs mer .

Så här ser de ut:

https://example.com/Lqj8a0

Snabb kodnings- och avkodningsexempel:

Sqids *sqids = [[Sqids alloc] init];
NSString *id_ = [sqids encode:@[@1, @2, @3] error:nil]; // @"86Rf07"
NSArray<NSNumber *> *numbers = [sqids decode:id_]; // @[@1, @2, @3]

Om ID:n är för korta kan du fylla på dem till en viss längd:

SqidsOptions *options = [[SqidsOptions alloc] init];
options.minLength = @10;
Sqids *sqids = [[Sqids alloc] initWithOptions:options];
NSString *id_ = [sqids encode:@[@1, @2, @3] error:nil]; // @"86Rf07xd4z"
NSArray<NSNumber *> *numbers = [sqids decode:id_]; // @[@1, @2, @3]

Skapa unika ID:n genom att blanda alfabetet:

SqidsOptions *options = [[SqidsOptions alloc] init];
options.alphabet = @"k3G7QAe51FCsPW92uEOyq4Bg6Sp8YzVTmnU0liwDdHXLajZrfxNhobJIRcMvKt";
Sqids *sqids = [[Sqids alloc] initWithOptions:options];
NSString *id_ = [sqids encode:@[@1, @2, @3] error:nil]; // @"XRKUdQ"
NSArray<NSNumber *> *numbers = [sqids decode:id_]; // @[@1, @2, @3]

Fullständig dokumentation finns på https://github.com/sqids/sqids-objective-c

Om du letar efter det ursprungliga Hashids Objective-C, hittar du det här: https://github.com/DrGodCarl/hashids-objc

Användningsområden

Det primära användningsområdet för Sqids är rent visuellt. Om du vill använda ID:n istället för nummer i ditt projekt kan Sqids vara ett bra val.

Bra för

  • Kodning av primärnycklar Om du använder en relationsdatabas
  • Spara databashämtningar Genom att koda flera objekt
  • Tillfälliga inloggnings-token Fri från svordomar och URL-säkra

Inte bra för

  • Känsliga data Detta är inte ett krypteringsbibliotek
  • Användar-ID:n Kan avslöja antalet användare om någon får tag på kodningsalfabetet

Funktioner

  • 🆔 Generera korta ID:n från icke-negativa nummer
  • Enkel kodning och avkodning
  • 🫣 Auto-genererade ID:n innehåller inte vanliga svordomar
  • 🎲 Stöd för anpassade ID:n via skufflat alfabet
  • 🥳 45 integrationer (84% använder en ny design)
  • 📌 Varje version producerar samma ID:n
  • 🍻 Litet bibliotek med en tillåtande licens

Exempel / Lekplats