Axure中的密碼強度校驗
如果想要檢驗密碼的強度,要求能判斷數字、大寫字母、小寫字母及符號,這個功能對開發人員來說很簡單,但在Axure中,默認情況下是無法使用正則表達式的,所以對于密碼強度的校驗就比較困難。怎么在Axure實現密碼強度校驗功能呢?本文作者對此進行了分析,一起來看一下吧。
有讀者提出了問題:“校驗一下密碼的強度?要求能夠判斷數字、大寫字母、小寫字母以及符號?!?/p>
如果是開發人員來實現此功能非常簡單,但是在Axure中,默認情況下是無法使用正則表達式的,所以對于密碼強度的校驗就變得有些困難,我們先依次來分析每種情況:
- 大寫字母:校驗大寫字母很簡單,只需要將密碼轉為小寫形式(通過 .toLowerCase()方法) ,然后與原始密碼進行比較,如果它們相等,則說明密碼中沒有大寫字母。
- 小寫字母:同樣地,將密碼轉為大寫形式(通過 .toUpperCase()方法),然后與原始密碼比較,如果相等說明沒有小寫字母。
- 數字:由于數字只有10個,因此可以采用“暴力窮舉”的方式來判斷(是否包含0、是否包含1……)但是這種方法不夠“優雅”!
- 特殊字符:常見的可在鍵盤上直接輸入的英文特殊字符在ASCII表里分了好幾段:32-47、58-64、91-96、123-126都有,如果再用“暴力窮舉”的方式實在是太野蠻了,而且對于中國人來說,密碼里塞幾個漢字或者全角字符好像也很正常,這種情況下窮舉顯然不現實,因此使用循環是比較好的辦法。
誒?等等!!循環???都要用循環了,那前面的分析沒就用了呀,直接用循環把每個字符都判斷一下不就好啦?
所以……以上文字都不重要了[手動狗頭]
一、基礎知識
為了本篇文章,我還專門寫了前置知識文章。如果你還不知道如何在Axure里使用循環,請先參考:《如何在Axure中使用“循環”》
二、真·解決方案
老規矩,我們先看一下演示鏈接:https://usrsky.axshare.com/#id=thtdwf&g=1
這個演示密碼強度校驗實現了:
- 密碼和明文的切換顯示。
- 當密碼為空時,提示“密碼不能為空”
- 當密碼少于8位時,提示“密碼至少需要8位”
- 當密碼中沒有大寫字母時,提示“沒有大寫字母”
- 當密碼中沒有小寫字母時,提示“沒有小寫字母”
- 當密碼中沒有數字時,提示“沒有數字”
- 當密碼中沒有符號時,提示“沒有符號”
- 根據密碼的強度不同,依次使用“紅、橙、藍、綠”四色提示增強用戶體驗
- 可以在任意位置插入、修改和刪除字符,即使使用鼠標操作也能正確地進行校驗
三、基本教程
我們先從最最簡單的開始一步一步來,準備好以下元件:
- 一個文本框(命名:Password),用來輸入密碼。在測試時,可以先將其設置為文本,成功后再把輸入類型改為“密碼”。
- 一個文本框(命名:Loop),用來做循環計數。
- 一個文本字段(命名:Message),用于反饋信息。
- 一個“校驗密碼強度”按鈕(命名:校驗密碼強度)。
- 四個復選框(分別命名:大寫、小寫、數字、字符),用于來記錄對應類型是否存在。
首先,我們需要在“校驗密碼強度”按鈕上編寫交互事件:
由于很多時候需要使用到Loop里的文本值,所以可著物盡其用的原則,因此我們將盡可能多的交互事件都寫在Loop文本框上,分別使用“尺寸改變時、移動時、選中或切換選中時”吧:
Loop的“尺寸改變時”,用來做做循環的判斷:
Loop的“移動時”,用來判斷每一個字符的類別。其中pwd變量是Password元件的文本:
其中“其它”的判斷稍微有點復雜,需要判斷好幾個區間。(注意右上角:符合任意條件)
Loop的“選中或取消選中時”,用于做最終總結:
這樣一個基本的密碼強度校驗功能就做好啦。
四、進階教程
接下來讓我們進行一些進階教程。對于之前實現的功能,還有一些可以優化的方面:
- 添加明碼和密文轉換功能。
- 在符號范圍判斷時應該考慮全角符號和雙字節文字。
- 可以限制每種類型字符的最少出現次數等。
- 為避免影響效率,可以限制密碼框中輸入文本的長度。
- 如果四個復選框都被選中,則無需再對后續字符做檢查,應該增加相應判斷。
- 應該增加一個可視化的強度展示,提升用戶體驗。
- 其它還有很多我沒想到的,可以評論區補充。
前個都幾個好解決,我們將重點介紹如何實現可視化強度展示:
在前面做好的原型基礎上,準備一個動態面板,包含5個狀態,分別為(空、25%紅色、50%橙色、75%藍色、100%綠色)。
在“校驗密碼強度”按鈕的點擊事件中,增加一步用于重置動態面板狀態的操作。
順便將循環邏輯優化一下:
在字符類型的判斷上刪除全部的區間判斷,允許全角符號及雙字節文字:
在最終判斷時加入對動態面板的改變,這里不需要判斷當前狀態,直接下一項即可:
最后,預覽我們完成的成果。
五、總結
使用循環可以對密碼文本的全部字符進行類型判斷,無論在何處增加、修改或刪除。為提升用戶體驗,我們還可以增加一些優化功能,如文本框轉換、符號范圍限制、最少個數限制等,并且通過可視化強度展示讓用戶更直觀地了解密碼強度。
本文由 @Jorkin 原創發布于人人都是產品經理,未經許可,禁止轉載
題圖來自 Unsplash,基于 CC0 協議
該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。
- 目前還沒評論,等你發揮!