KeyGenerator.io

強密碼產生器

長隨機密碼,在你的瀏覽器裡產生。不連網,不記錄,不上傳。

0 位元熵

20
字元類別

空白鍵 換一個,C 複製。密碼由本機的 crypto.getRandomValues 產生,頁面不載入任何外部資源。

運作原理

每個密碼都來自 crypto.getRandomValues,也就是瀏覽器提供的密碼學安全亂數來源,而不是 Math.random —— 後者雖然快,但可預測,絕不能用來產生機密。取字元時採用拒絕採樣:如果直接把亂數對字元集大小取餘數,排在前面的字元會悄悄變得更容易被選中,因此超出範圍的結果會被丟棄重抽。

你勾選的每個類別都會先各放一個字元進去,接著整串重新洗牌,所以這個保證不會在位置上留下規律。強度讀數是以位元表示的熵值 —— 密碼長度乘以字元池大小的以 2 為底對數。每多一個位元,攻擊者需要嘗試的候選數量就翻一倍。

破解時間以最壞的現實情況估算:攻擊者已經拿到密碼資料庫,用快速雜湊離線暴力破解,每秒一千億次。顯示的是平均值,也就是搜尋一半金鑰空間所需的時間。所有運算都在你的裝置上完成,頁面不載入任何外部指令碼、字型或圖片,載入後不發出任何網路請求,也不儲存任何東西。關掉分頁,這個密碼就消失了。

常見問題

密碼要多長才算安全?

只要是重要的帳號,就用 16 個以上的隨機字元。四種類別全開時大約是 104 位元的熵,遠遠超出目前乃至可預見未來的離線破解能力。短密碼之所以危險,是因為熵隨長度增長,每少一個字元,攻擊者的工作量就成倍下降。

一定要加特殊符號嗎?

不一定。長度帶來的安全性遠比符號種類多寡來得大。20 個小寫字母加數字,比 12 個用滿所有類別的字元更強。網站允許就開著,遇到不接受符號的老舊系統關掉也無妨,多加幾個字元補回來就好。

你們看得到我產生的密碼嗎?

看不到。產生過程完全在你的瀏覽器裡進行。這個頁面沒有伺服器端、沒有分析工具,載入完成後不發出任何網路請求,密碼根本沒有地方可去。你可以自己打開瀏覽器的網路面板驗證。

這個亂數真的可靠嗎?

可靠。crypto.getRandomValues 是 Web Crypto 標準提供的密碼學安全偽亂數產生器,由作業系統的熵池播種,與產生加密金鑰用的是同一類原語。它的設計保證了即使看到過去的輸出,也無法推測未來的輸出。

「位元熵」到底是什麼意思?

它是「產生器可能產出的等機率密碼數量」取以 2 為底的對數。60 位元大約是一百京種可能。因為這是對數尺度,從 60 位元到 80 位元不是強了三分之一,而是強了大約一百萬倍。

「去掉易混淆字元」有什麼用?

它會移除手寫或朗讀時容易搞混的字元:大寫 I、小寫 l、數字 1、豎線、大寫 O、數字 0、小寫 o,以及各種引號。需要照著紙抄寫或口頭念給別人時就打開。它會縮小字元池,因此每個字元的熵略微下降 —— 上方的讀數已經把這點算進去了。

這些密碼需要背下來嗎?

不需要。隨機密碼本來就是拿來存的,不是拿來記的。把它們交給密碼管理器,你只需要記住管理器的主密碼 —— 那才是唯一適合用一句自己記得住的長通行語的地方。

可以用來產生 API 金鑰或其他隨機字串嗎?

可以 —— 這樣用的時候,它就是一個線上金鑰產生器。輸出本來就是一串隨機字元,拿來當 API 金鑰、資料庫或工作階段權杖、Wi-Fi 密碼或加鹽值都適用。只給機器讀的字串建議拉到 32 字元以上,反正沒人要手打,沒有理由縮短。如果某個系統只接受特定字元,把它拒絕的類別關掉即可。

免費嗎?需要註冊嗎?

免費,不需要註冊,也沒有次數限制。沒有付費方案,也沒有任何東西需要你登記。頁面上沒有廣告聯播網、沒有第三方腳本,也沒有任何形式的追蹤。