Base62 エンコーディングとは、英小文字 26 文字 (a-z) + 英大文字 26 文字 (A-Z) + 数字 10 文字 (0-9) の合計 62 文字を使ってデータを表現するエンコード方式です。短縮 URL のショートコード生成で最も広く使われている手法です。
なぜ Base62 が短縮 URL に適しているかを数字で示します。6 文字の Base62 コードで表現できるパターン数は 62 の 6 乗 = 約 568 億通りです。7 文字なら約 3.5 兆通りになります。これは世界中の短縮 URL サービスが数十年運用しても枯渇しない規模です。
短縮 URL サービスの内部では、URL ごとに一意の整数 ID を採番し、その ID を Base62 に変換してショートコードを生成するのが一般的な実装パターンです。たとえば ID = 12345 を Base62 に変換すると「3d7」(3 文字) になります。ID が大きくなるほどコードも長くなりますが、数百億件までは 6 文字以内に収まります。
Base62 と似た方式に Base64 がありますが、Base64 は「+」と「/」を含むため URL に使うとエンコードが必要になります。Base62 は URL セーフな文字のみで構成されるため、追加のエンコード処理が不要です。これが短縮 URL で Base62 が好まれる理由です。
Base62 の実装は非常にシンプルで、10 進数を 62 進数に変換するだけです。多くのプログラミング言語で数行のコードで実装できます。ただし、連番の ID をそのまま Base62 に変換すると、ショートコードが予測可能になるセキュリティ上の懸念があります。対策として、ID にランダムなオフセットを加えたり、ハッシュ関数を組み合わせたりする手法が使われます。関連書籍は Amazon でも探せます。