#31 密碼安全性檢查

for in 迴圈,Array contains 屬性,練習

--

在現在的時代,我們每天都會接觸很多新的App,當你下載了一個新的 app,基本上都需要使用者註冊新的帳號。

使用者註冊時,必須設定帳號密碼。你希望你可以擁有安全的密碼,所以今天我們來練習然後做一個App來檢查我們設立的密碼是不是終極密碼,可以拒絕不安全的密碼。

建立密碼的規則如下,

  1. 至少 16 個字元。

2. 至少一個普通字母。

3. 至少一個數字。

4. 至少一個標點符號。

5. 至少包含一個大寫字母和一個小寫字母。

6. 不可以包含使用者名稱。

先看一下成果

步驟:

1. 先拉@IBAOutlet,這一次只有三個要拉,

暱稱跟密碼的UItextField,還有顯示結果的Label

這一次,因為要讓大家看到自己打的密碼,所以把密碼的UITexifield的 Secure Text entry 的勾去掉,這樣就可以看到了!

如果打鉤,就會看不到自己打的密碼,就會出現。。。。

檢查結果的Label,一開始是Hidden 打勾的,所以一開始是沒有顯示的。

2. 分析密碼:

密碼有3個部分組成

a. 26個英文字母,分大小寫。

b. 0~9 數字

c. 標點符號 包含“ !@#$%^&*(),.<>;’`~[]{}\\|/?_-+= ”

先把數字和標點符號宣告成一個常數, 以方便我們檢查。

3. 建立條件

終極密碼建立規則裡,將不是字母的檢查先檢查完,就是至少 16 個字元和不可以包含使用者名稱

4. 建立迴圈檢查字母

檢查至少一個數字
至少一個標點符號 !@#$%^&*(),.<>;’`~[]{}\\|/?_-+=
至少一個普通字母
至少包含一個大寫字母和一個小寫字母

你不必檢查整組密碼,而是檢查密碼的每個字元。

回想先前學過的內容,字串的定義是字元序列。雖然 String 和 Array 是不同的類型,但兩者都是序列,也就是說兩者皆以特定順序排列元素。for…in 迴圈具有特殊的超能力:可適用於「任何」序列,不僅適用於陣列。

5. 將檢查結果顯示在resultLabel

完整程式碼

GitHub:

--

--