Sqidsとは何ですか?

Sqidsは、数値から短い一意の識別子を生成できるオープンソースのライブラリです。これらのIDはURLセーフであり、複数の数値をエンコードでき、一般的な卑語を含んでいません。 もっと読む .

こう見えます:

https://example.com/Lqj8a0

クイックエンコード&デコードの例:

var
  Id: string;
  Numbers: TNumbers;
begin
  with TSqids.Create do
  try
    Id := Encode([1, 2, 3]); // '86Rf07'
    Numbers := Decode(Id); // [1, 2, 3]
  finally
    Free;
  end;
end;

IDが短すぎる場合は、特定の長さまでパディングすることができます:

var
  Id: string;
  Numbers: TNumbers;
begin
  with TSqids.Create(10) do
  try
    Id := Encode([1, 2, 3]); // '86Rf07xd4z'
    Numbers := Decode(Id); // [1, 2, 3]
  finally
    Free;
  end;
end;

アルファベットをシャッフルしてユニークなIDを作成する:

var
  Id: string;
  Numbers: TNumbers;
begin
  with TSqids.Create('k3G7QAe51FCsPW92uEOyq4Bg6Sp8YzVTmnU0liwDdHXLajZrfxNhobJIRcMvKt') do
  try
    Id := Encode([1, 2, 3]); // 'XRKUdQ'
    Numbers := Decode(Id); // [1, 2, 3]
  finally
    Free;
  end;
end;

完全なドキュメントはこちら https://github.com/sqids/sqids-pascal

使用例

Sqidsの主な用途は純粋に視覚的です。プロジェクトで数字の代わりにIDを使用したい場合、Sqidsは良い選択肢になるかもしれません。

適している

  • 主キーのエンコード リレーショナルデータベースを使用している場合
  • データベースの検索を節約 複数のオブジェクトをエンコードすることで
  • 一時的なログイントークン 卑語フリーでURLセーフ

適していない

  • 機密データ これは暗号化ライブラリではありません
  • ユーザーID 暗号化アルファベットが漏れた場合、ユーザー数を明らかにすることができます

機能

  • 🆔 非負の数値から短いIDを生成
  • 簡単なエンコード&デコード
  • 🫣 自動生成されたIDに一般的な卑語は含まれていません
  • 🎲 シャッフルされたアルファベットを介したカスタムIDのサポート
  • 🥳 45 インテグレーション (84% は新しいデザインを使用しています)
  • 📌 すべてのバージョンで同じIDが生成されます
  • 🍻 許容的なライセンスを持つ小さなライブラリ

例 / プレイグラウンド