在 Excel 中以亂數自動產生隨機的密碼。
問題
如何在 Excel 中自動產生隨機的亂數密碼,包含大、小寫英文字母、數字與特殊符號等?
解法
Excel 中有許多可以用來產生亂數的函數,只要善用這類的函數,就可以快速產生各式各樣的隨機密碼,以下是產生各種密碼的方式與範例。
基本密碼產生方式
一般的密碼大概都是由「大寫英文」、「小寫英文」、「數字」與「特殊符號」所組成的,若要產生這些資料,可以在查詢 ASCII 表之後,使用 RANDBETWEEN
產生對應的亂數值,再透過 CHAR
轉為對應的字符。
舉例來說,若要以亂數產生一個大寫英文字母,可以先用 RANDBETWEEN
產生一個 65
到 90
之間的數字(也就是 A
到 Z
的 ASCII 碼),然後再用 CHAR
轉為對應的英文字母:
=CHAR(RANDBETWEEN(65,90))
類似的方式也可以用於產生一個小寫英文字母:
=CHAR(RANDBETWEEN(97,122))
如果單純只要產生隨機的數字,就只要呼叫一次 RANDBETWEEN
函數,即可產生多個數字。例如以亂數產生三個數字:
=RANDBETWEEN(100,999)
如果要讓密碼強度更高,可以將亂數的範圍設定為整個 ASCII「可顯示字元」的範圍,直接從大、小寫英文字母、數字或符號中取出字符:
=CHAR(RANDBETWEEN(33,126))
產生隨機密碼
熟悉了基本的亂數字符產生方式之後,只要把它們用 &
這個字串連接運算子串接起來,就可以生成我們需要的隨機密碼了。
例如若想要產生兩個大寫英文,加上四位數字的密碼,就可以這樣寫:
=CHAR(RANDBETWEEN(65,90))&CHAR(RANDBETWEEN(65,90))&RANDBETWEEN(1000,9909)
若要產生長度為 8
,包含大小寫英文、數字與特殊符號的密碼,可以這樣寫(也就是把 8
個產生「可顯示字元」的公式串起來):
=CHAR(RANDBETWEEN(33,126))&CHAR(RANDBETWEEN(33,126))&CHAR(RANDBETWEEN(33,126))&CHAR(RANDBETWEEN(33,126))&CHAR(RANDBETWEEN(33,126))&CHAR(RANDBETWEEN(33,126))&CHAR(RANDBETWEEN(33,126))&CHAR(RANDBETWEEN(33,126))
小N 表示:
請問這樣的做法會不會重覆呢?