功能說明
本工具產生 Nano ID:簡短、隨機、URL 安全的識別碼,可用作資料庫主鍵、檔名、短網址路徑、邀請碼或測試資料。它使用與 Nano ID 函式庫相同的方法,因此產生的 ID 與程式中 nanoid() 產生的 ID 外觀與特性一致。
你可以調整長度、選擇內建字元集或輸入自己的字元集,一次最多產生 1000 個。選項下方會顯示每個 ID 的熵,以及大約產生多少個 ID 後重複機率才會達到 1%。
使用方法
- 選擇長度,21 是 Nano ID 的預設值。
- 選擇字元集:URL 安全、英數字、小寫字母與數字、十六進位、純數字、排除易混字元,或自訂。
- 選擇需要的數量。修改任何設定都會立即重新產生。
- 點選產生取得一批新的 ID,然後複製或下載清單,每行一個 ID。
範例
在 JavaScript 中用 nanoid 套件產生同樣的 ID:
import { nanoid, customAlphabet } from 'nanoid'
nanoid() // "V1StGXR8_Z5jdHi6B-myT"
const orderId = customAlphabet('0123456789ABCDEFGHJKLMNPQRSTUVWXYZ', 12)
orderId() // "4KQ7ZB9XH2MD"
如何選擇字元集
URL 安全字元集讓每個字元攜帶的隨機性最多,在 URL、檔名和 JSON 中都不需跳脫。英數字去掉了 _ 和 -,按兩下就能選取整個 ID。十六進位和純數字適合只接受這些字元的系統,但要達到同樣強度需要更長的 ID。排除易混字元的字元集去掉了 0 和 O、1、l 和 I 等字元,人工閱讀和輸入時更不容易出錯。
常見問題
› 什麼是 Nano ID?
Nano ID 是一種流行的隨機唯一 ID 格式與 JavaScript 函式庫。預設 ID 由 21 個字元組成,取自 64 個 URL 安全字元(A–Z、a–z、0–9、_ 和 -),共 126 位元隨機性,接近 UUID v4 的 122 位元,但字串短得多。
› ID 應該多長?
取決於你要產生多少個 ID。選項下方的估算顯示大約產生多少個 ID 時,任意兩個相同的機率會達到 1%。預設的 21 個字元幾乎適用於任何系統;短網址或邀請碼通常 10 到 12 個字元就夠了,再搭配資料庫的唯一性檢查。
› 這些 ID 的隨機性足以用於安全用途嗎?
字元來自瀏覽器的密碼學安全亂數產生器,超出字元集範圍的值會被捨棄而不是取模,所以每個字元出現的機率相同。夠長的 ID 可以當作無法猜測的權杖。所有內容都不會傳送到伺服器。
› 可以使用自己的字元嗎?
可以。選擇「自訂」並輸入字元集,例如需要口頭唸出的代碼只用大寫字母。字元集需要 2 到 256 個不同的字元;重複的字元會被拒絕,因為它們會讓某些字元出現得更頻繁。