2010年から · 毎月200万回以上のツール利用を支えています
2010年から
Chrome に追加

私のツールボックス

自動モード

保存したツールはまだありません。

プレミアムバージョンにアップグレード
関連ツール
urlスラッグジェネレーターwpaキージェネレーターDjango秘密鍵ジェネレーターWordPress セキュリティキージェネレーター
ホームページ > ランダムネス
 

ランダムnanoid生成器

UUIDに代わる、より小型で現代的な暗号学的に安全なNanoIDを生成します。文字種(URLセーフ、16進、英数字、紛らわしい文字なし)をカスタマイズし、長さを8から64まで設定し、一括生成や衝突確率のチェックも可能です。

無料で利用可能登録不要2026年2月更新
ランダムnanoid生成器今すぐ無料で試す ▼
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-
64 個の一意の文字
各IDの前に追加されるオプションのプレフィックス (例: "usr_", "doc_", "tx-")

ランダムnanoid生成器を埋め込む

ランダムnanoid生成器

ランダムNanoID生成器へようこそ。安全でURLフレンドリーな一意の文字列識別子を生成するための強力なオンラインツールです。NanoIDは、UUID(Universally Unique Identifiers)に代わる現代的で軽量な選択肢であり、同等の衝突耐性を維持しながら、より短いIDを提供します。API、データベース、URL短縮サービス、分散システムのいずれを構築している場合でも、この生成器は、カスタマイズ可能なアルファベット、調整可能な長さ、リアルタイムの衝突確率分析を備えた、暗号学的に安全なIDを提供します。

NanoIDとは何ですか?

NanoIDは、Andrey Sitnik氏によってJavaScript向けに作成された、小さく、安全で、URLフレンドリーな一意の文字列ID生成器です。その後、すべての主要なプログラミング言語に移植されました。NanoIDの主な革新は、UUIDの16進数16文字の代わりに、より大きなアルファベット(デフォルトで64文字)を使用することです。これにより、1文字あたりのエントロピーが増え、IDを短くすることができます。

デフォルトのNanoIDの例:V1StGXR8_Z5jdHi6B-myT

NanoID vs UUID の比較

機能 NanoID UUID v4
デフォルトの長さ 21文字 36文字(ハイフンを含む)
アルファベットサイズ 64文字 (A-Za-z0-9_-) 16文字 (0-9a-f)
エントロピー ~126ビット (21文字) ~122ビット (32桁の16進数)
URLセーフ ✓ エンコード不要 ✗ ハイフンは状況によりエンコードが必要
カスタマイズ性 ✓ アルファベットと長さ ✗ 固定フォーマット (8-4-4-4-12)
サイズ効率 ✓ 1文字あたり6ビット ✗ 1文字あたり4ビット
フォーマット コンパクトな文字列 xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx

このツールが安全なNanoIDを生成する仕組み

暗号学的な乱数性

この生成器は、サーバー側でPythonのsecretsモジュールを使用しています。これは、オペレーティングシステムのエントロピーソース(Linux/macOSでは/dev/urandom、WindowsではCryptGenRandom)に裏打ちされた、暗号学的に安全な乱数生成を提供します。NanoIDの各文字は、選択されたアルファベットから独立して、予測不可能な形で選択されます。

アルファベットプリセット

さまざまなユースケースに合わせて、慎重に選ばれた9つのアルファベットプリセットを提供しています:

  • NanoIDデフォルト (64文字): 標準的なNanoIDアルファベットA-Za-z0-9_-。URLセーフでコンパクト、広く互換性があります。1文字あたり6ビットのエントロピー。
  • 英数字 (62文字): 英字と数字のみで、特殊文字は含まれません。ファイル名、データベースフィールド、記号が問題を引き起こす可能性のある状況で安全です。
  • 16進数 (16文字): 伝統的な16進数形式。CSSの色やハッシュダイジェストなど、16進数ベースのシステムと統合する必要がある場合に便利です。
  • 数字のみ (10文字): 数値IDのみ。注文番号、参照コード、または数字のみを受け入れるシステムに適しています。
  • 小文字 / 大文字 (26文字): ケースインセンシティブなシステムや視覚的な一貫性のための単一ケースのアルファベット。
  • 見間違いにくい文字 (57文字): 混同しやすい文字(1/l/I、0/O/o)を除外します。招待リンク、確認番号、人間が手動で入力する必要があるIDに最適です。
  • URLセーフ (66文字): RFC 3986の非予約文字に従い、-._~を追加した拡張アルファベット。
  • カスタムアルファベット: 独自の文字セットを定義します。文字は自動的に重複排除されます。

衝突確率の解説

衝突確率は、独立して生成された2つのIDが同一になる可能性を測定します。これは確率論における誕生日のパラドックスによって支配されます:

  • 可能なIDの総数: アルファベットサイズ ^ IDの長さ。デフォルトのNanoIDの場合:64^21 = ~2^126
  • n個生成されたIDについて: 衝突確率 ~ n^2 / (2 * 総数)
  • 1,000個のIDの場合: 確率は天文学的に小さい (~10^-33)
  • デフォルト設定で1%の衝突確率に達するには: 約 ~10^18 個(100京個)のIDが必要です

このページの衝突確率計算機は、選択されたアルファベットとIDの長さに基づいたリアルタイム分析を表示し、特定の規模に応じたID構成の決定を支援します。

NanoID生成器の使い方

  1. アルファベットプリセットを選択する: 9つのプリセットから選択するか、カスタムアルファベットを定義します。アルファベットプレビューに使用される正確な文字が表示されます。
  2. IDの長さを設定する: 8〜64文字から選択します。デフォルトは21文字で、標準アルファベットで約126ビットのエントロピーを提供します。
  3. オプション設定を構成する: 名前空間付きID(例:「usr_」、「doc_」)のプレフィックスを追加し、数量(1〜50)を選択します。
  4. 生成してコピーする: 「NanoIDを生成」をクリックしてIDを作成します。個別のIDをワンクリックでコピーするか、すべてを一度にコピーします。

NanoIDのユースケース

データベースの主キー

NanoIDはデータベースの主キーとして優れています。UUIDよりも短く(21文字 vs 36文字)、ストレージ容量を節約し、インデックスサイズを削減できます。IDを自己文書化するために、「usr_」や「ord_」のようなプレフィックスを使用してください。

APIリソース識別子

NanoIDはデフォルトでURLセーフであるため、REST APIエンドポイントに最適です:/api/users/V1StGXR8_Z5jdHi6B-myT。URLエンコードは不要で、ログやURLでもすっきりして見えます。

URL短縮サービス

デフォルトのアルファベットを使用した10文字のNanoIDは、64^10 = ~10^18 通りの組み合わせを提供し、あらゆるURL短縮サービスに十分です。ユーザーが短縮URLを手動で入力する必要がある場合、見間違いにくい文字のアルファベットが特に便利です。

セッショントークンとCSRFトークン

このツールは暗号学的な乱数を使用しているため、生成されたIDはセキュリティトークンに適しています。機密性の高いセキュリティアプリケーションには、より長い文字数(32〜64文字)を使用してください。

分散システム

NanoIDは、自動インクリメント整数とは異なり、調整なしで複数のサーバーで独立して生成できます。衝突確率は、大規模なスケールであっても無視できるほど低いです。

ファイル命名

すべてのオペレーティングシステムで安全なファイル名にするには、英数字プリセットを使用してください。特殊文字が含まれないため、Windows、macOS、またはLinuxでエスケープの問題が発生しません。

適切な長さの選択

長さ エントロピー (64文字) 最適な用途 1%衝突しきい値
8 48ビット 短縮URL、小規模なデータセット 約1,600万個のID
12 72ビット 汎用、中規模なデータセット 約680億個のID
16 96ビット 大規模システム、高スループット 約280兆個のID
21 126ビット デフォルト、ほとんどの用途 約10^18個のID
32 192ビット セキュリティトークン、超安全 約10^28個のID
64 384ビット 最大級のセキュリティ 約10^57個のID

コード例

JavaScript (nanoid パッケージを使用)

import { nanoid } from 'nanoid';

// デフォルト: 21文字、URLセーフアルファベット
const id = nanoid(); // "V1StGXR8_Z5jdHi6B-myT"

// カスタムの長さ
const shortId = nanoid(10); // "IRFa-VaY2b"

// カスタムアルファベット
import { customAlphabet } from 'nanoid';
const hexId = customAlphabet('0123456789abcdef', 12);

Python (nanoid パッケージを使用)

from nanoid import generate

# デフォルト NanoID
id = generate() # "V1StGXR8_Z5jdHi6B-myT"

# カスタムの長さとアルファベット
id = generate('0123456789abcdef', 12)

よくある質問 (FAQ)

NanoIDとは何ですか?UUIDとの違いは何ですか?

NanoIDは、小さく、安全で、URLフレンドリーな一意の文字列ID生成器です。デフォルトで21文字(UUIDの36文字に対して)であり、より大きなアルファベット(A-Za-z0-9_-)を使用して1文字あたりのエントロピーを高め、エンコードなしでURLセーフであり、固定フォーマットやハイフンがありません。NanoIDは、16進数の16文字ではなく64個の記号を使用するため、UUID v4と同様の衝突耐性をより少ない文字数で実現します。

このツールで生成されたNanoIDの安全性はどの程度ですか?

このツールはPythonのsecretsモジュールを使用しており、オペレーティングシステムのエントロピーソースに裏打ちされた暗号学的に安全な乱数生成を提供します。各文字は独立して、予測不可能な形で選択されます。標準アルファベットを使用したデフォルトの21文字のNanoIDは約126ビットのエントロピーを持ち、これはUUID v4の約122ビットに匹敵します。

プロジェクトにはどのNanoIDの長さを使用すべきですか?

デフォルトの21文字の長さは標準アルファベットで約126ビットのエントロピーを提供し、ほとんどのアプリケーションで十分です。URL短縮サービスやユーザー向けIDの場合、合計ID数によっては8〜12文字で十分な場合があります。分散システムで数百万のIDを生成する場合、21文字以上あれば衝突確率は無視できるほど低くなります。衝突確率計算機を使用して、特定のユースケースに適した長さを見つけてください。

NanoIDをデータベースの主キーとして使用できますか?

はい、NanoIDはデータベースの主キーとして適しています。コンパクト(21文字、UUIDは36文字)で、URLセーフであり、優れた衝突耐性を備えています。ただし、自動インクリメントの整数とは異なり、順序性がないため、データベースがBツリーインデックスを使用している場合、ランダムなIDによってページ分割が多く発生する可能性があります。プレフィックス(「usr_」や「ord_」など)の使用を検討してください。

「見間違いにくい文字」アルファベットプリセットとは何ですか?

見間違いにくいプリセットは、多くのフォントで似て見える文字を除外します:1/l/I(数字の1、小文字のL、大文字のI)と0/O/o(数字の0、大文字のO、小文字のO)。これにより、IDの読み取り、書き写し、口頭での伝達がはるかに容易になります。招待コード、確認番号、または人間が手動で入力する必要があるIDに最適です。

追加リソース

このコンテンツ、ページ、またはツールを引用する場合:

"ランダムnanoid生成器"(https://MiniWebtool.com/ja/ランダムnanoid生成器/)、MiniWebtool、https://MiniWebtool.com/

by miniwebtool チーム. 更新日: 2026年2月7日

ランダムネス:

人気・最新のツール:

ランダムPIN生成器ランダムストリングジェネレーターランダムユーザーエージェントジェネレーターすべて見る →
ホームページ > ランダムネス > ランダムnanoid生成器