一組強大且獨一無二的密碼是任何線上帳號能獲得的最廉價防禦——而您通常會在不太方便的時候急需一組密碼:設定新的工作登入、網路銀行強制要求重設、剛拆封的全新路由器,或是當您終於決定改用密碼管理員(password manager)時。這個免費的強密碼產生器只需點擊一下,就能建立出完全隨機的密碼。將「長度」設定為您需要的大小,挑選要包含的字元類型——大寫與小寫字母、數字、基本符號(%$#@!?&)以及複雜符號(.,;[]()^-_=+{}:<>|)——然後按下「產生」。
由於安全性是核心目的,因此該產生器建立於 Web Crypto API(crypto.getRandomValues)之上,它所提取的數值來自與 TLS 和其他對安全要求極高的作業相同的、受密碼學保護的系統級隨機來源。與基於 Math.random() 或其他可預測的偽隨機函數所建構的產生器不同,它的設計確保了攻擊者即使看見一個結果,也無法推斷出下一個密碼是什麼。整個產生過程完全在您的裝置上進行:密碼絕不會傳送到伺服器、絕不會被記錄,我們也絕對看不到——沒有任何資料會被中途攔截,也沒有任何東西供我們儲存。
豐富的選項使其能輕鬆符合任何網站的密碼原則。每一組產生的密碼都保證包含您所選的每種字元類型至少一個——因此像「必須包含一個大寫字母和一個數字」這種要求會自動達成——並且「確保每種字元類型數量大致相等」預設處於開啟狀態,這樣就不會有單一類別的字元佔據壓倒性的比例。為了獲得最大強度,您可以開啟符號;對於拒絕符號的舊版系統,則可以將其關閉。「排除易混淆字元」開關會移除人們最常看錯的字元(Il1O0o)。
需要多組密碼,或是遇到了不尋常的原則要求?您可以設定「數量」以一次建立一整份清單——最多可達 100 組密碼,例如在為團隊建立帳號時——而一旦數量大於 1,「輸出格式」將決定它們的排列方式:「換行」、「以空格分隔」或「以逗號分隔」。其餘功能都在「進階選項」下。關閉「排除同一組密碼中的重複字元」即可允許同一個字元出現多次。雖然本產生器無法直接包含中文字元,但它支援了其他 35 種語言的特殊字母——從烏克蘭語、希臘語和塞爾維亞語,到波蘭語、土耳其語和越南語。為了獲得完全的控制權,「字元集(每行一個)」允許您定義自己的字元庫:每一行都會成為一個獨立的字元類別,供產生器從中隨機抽取。
為什麼選擇這個密碼產生器?
- 純瀏覽器端產生:密碼在您的裝置上建立,絕不傳送到任何地方
- Web Crypto API 隨機性——具備密碼學等級的安全性,而非 Math.random()
- 免費且無限制:隨心所欲地產生無數組密碼,無需註冊
- 類別保證:所有選定的字元類型都必定會出現
- 自訂字元集,以應對各種不尋常的密碼原則
- 熵值估算:以位元(bits)為單位查看每組密碼的強度
- 易混淆字元保護功能,避免視覺上的誤讀
- 其他語言字母:可以混入來自 35 種語言的本地字母
- 批次模式:一鍵建立一整份密碼清單
這種隨機性是如何產生的?您的作業系統會持續收集熵(entropy)——也就是來自硬體事件的不可預測雜訊——並將其輸入到一個安全加密的亂數產生器中。當您按下「產生」時,頁面的 JavaScript 會透過 crypto.getRandomValues 向瀏覽器請求隨機值,將它們對映到您選擇的字元類別上,檢查每種類別的代表是否都存在,然後組裝出密碼。這裡沒有可供猜測的種子(seed),沒有可讓專門的密碼破解硬體用來重播的演算法捷徑,任何步驟中也都沒有網路請求——整個流程只在您的裝置上執行。
在結果下方,您會看到以位元為單位的熵值估算——這是衡量密碼強度的標準:對於日常帳號來說 60+ 位元是合理的,80+ 算得上強大,而 100+ 則已超出了當今硬體進行暴力破解(brute force)的實際能力範圍。養成兩個習慣比什麼都重要。第一,長度勝過複雜性:對於任何重要的帳號,請使用 16 個以上字元——每增加一個字元,攻擊者的破解工作量就會成倍增長,速度遠超再增加一種符號類別。第二,唯一性:當某個網站遭受資料外洩(data breach)時,外洩的登入憑證會立刻被拿到其他服務上嘗試——這被稱為撞庫(credential stuffing)攻擊——因此,即使只是重複使用了一組密碼,也可能讓一次單一的外洩演變成全面的帳號劫持。為每個帳號產生一組獨立的密碼,將它們保存在密碼管理員中,並在所有提供該功能的地方啟用雙重驗證(2FA)。另外,如果一組真正隨機的密碼包含了一個重複的字元或者一小段看似可讀的片段,也不要感到驚訝——真正的隨機性總是會產生這樣的序列,並且它們絲毫不會讓密碼變得脆弱。