跳至主要內容
Lizely

Nano ID 產生器

產生最多 100 個經加密隨機產生的 Nano ID 相容字串,長度範圍為 1 至 128 個字元。

隱私權:你的檔案不會離開裝置,所有處理均在瀏覽器本機完成。

使用方式

  1. 1.請從 1 至 128 選擇識別碼長度,從 1 至 100 選擇數量。
  2. 2.使用瀏覽器加密隨機來源產生批次。
  3. 3.複製以換行分隔的識別碼,並在你的永續資料儲存中再次確認其唯一性。

關於Nano ID 產生器

奈米ID產生器在瀏覽器中使用官方64符號的Nano ID字母建立URL友好的隨機識別碼:大字母,小字母,數字,凸點和字串.選擇從1到128的長度,並從1到100的數量,然後產生批次.預設長度是21字元,與Nano ID專案的正常API相匹配.。

隨機來源為 window.crypto.getRandomValues,這是 Web Crypto API 的基本原語,用以提供強加密隨機位元組。此產生器不會使用 Math.random、基於時間戳、計數器、瀏覽器指紋或確定性種子來生成值。這種區別在識別碼必須難以預測的情況下至關重要。它仍不會將識別碼轉換為驗證、授權、加密或機密管理功能。存取控制必須獨立於識別碼是否看起來隨機。

統一符號選擇需要比簡單將隨機位元組對模字元集長度取模更為精確。取模運算會導致偏差,當隨機值範圍無法被字元集大小整除時。本實作採用 Nano ID 的拒絕抽樣方法:建立一個位元遮罩,忽略超出字元集範圍的值,並持續抽取直到達到所需的長度。預設字元集包含 64 個獨特符號,因此其索引可精確地用六位元表示。測試會鎖定代表性字元索引,並強制執行所有長度與數量的限制。

長度決定了識別碼的隨機空間。在包含 64 個符號的字元集中,每個字元代表六個隨機位元,因此預設的 21 字元長度對應 126 位元(在考慮應用層行為前)。縮短識別碼會導致空間呈指數式減少,隨著資料量增加,碰撞機率也會上升。本頁面並不會保證任何選擇的長度是完全無碰撞的。在決定長度前,應評估預期的發行量、可接受的風險、重試行為、儲存壽命以及對抗性暴露情況,並考慮是否需要調整預設值。

產生的批次在顯示前會檢查是否有重複值。若在同一批次中出現極其罕見的重複值,工具將顯示錯誤,而非靜默返回。此本機檢查不會與其他標籤頁、裝置、流程、部署或先前會話中產生的識別碼進行協調。資料庫仍應強制執行唯一性約束,且建立程式碼應以原子方式處理衝突。先檢查再插入的機制可能導致競爭條件;應讓永續儲存系統成為最終的權威。

Nano ID 字串在 URL 中非常實用,因為預設字元集避免了斜線、加號、等號、空白字元等常需轉義的字元。它並非順序排列,也不編碼時間、地區、分片、記錄型別或建立順序。若你的系統需要字典序時間排序、離線解碼或標準化的 UUID 表示方式,請選擇專為此目的設計的格式。請勿從隨機字元中推斷時間順序或業務意義。

產生與複製僅在使用者端進行。不會將任何識別碼、計數、長度、剪貼簿內容、隨機位元組或使用事件傳送至伺服器。瀏覽器擴充功能、被入侵的指令碼或被入侵的裝置仍可能觀察到頁面資料,因此請勿在此處產生密碼、API 金鑰、恢復碼、簽署材料或高價值機密。請使用目標平臺的專用憑證產生器和安全儲存來處理這些任務。

為確保可靠整合,除非有實際測量需求支援,否則應保留預設的 21 字元長度,並將值儲存在保留大小寫與標點符號的欄位中,加上唯一性約束,僅在建立失敗時重試。請測試所有路徑、日誌處理器、分析系統、CSV 過濾輸出以及資料庫排序規則,以確保識別碼的正確處理。官方 Nano ID 專案仍是生態系統相容性的最終權威;W3C Web Crypto 標準則是本工具所使用的瀏覽器隨機原語的基礎。

方法與來源

使用 Web Crypto 產生的隨機位元組、Nano ID 官方指定的 64 符號 URL 字元集、計算出的遮罩,以及拒絕抽樣來避免取模偏差。它驗證長度範圍為 1 至 128,數量範圍為 1 至 100,若隨機來源不正確則失敗,並在產生批次內拒絕重複值。

常見問題

預設的 21 字元 Nano ID 保證永遠不會碰撞嗎?
沒有任何隨機識別碼是絕對不會碰撞的。預設值提供極大的空間,但應用程式仍應強制執行資料庫的唯一性約束,並以原子方式處理衝突。
我可以將這些識別碼用作密碼或 API 金鑰嗎?
不可以。隨機識別碼與憑證有不同的生命週期、儲存方式、輪替需求和曝光風險。請使用目標系統的專用機密生成器與管理工具。
為何不使用 Math.random 或位元組對字元集長度取模?
Math.random 不是加密級的隨機來源,簡單的取模對映可能導致符號偏差。本工具使用 Web Crypto 位元組並採用拒絕抽樣來避免這種偏差。

開發者工具 使用指南

查看全部