Swift 生成密碼程式


密碼是由指定長度的各種字元組合而成,用於身份驗證或訪問系統或登入帳戶。它是出於安全目的而設計的,確保只有授權使用者才能訪問或登入特定帳戶。選擇強密碼非常重要,以防止其他人破解。它根據以下條件生成:

  • 至少包含一個大寫字母。

  • 至少包含一個小寫字母。

  • 至少包含一個數字。

  • 長度必須為 8 個字元。

  • 至少包含一個特殊字元。

在 Swift 中,我們可以藉助以下方法生成隨機密碼:

  • 使用 random() 方法

  • 使用 randomElement() 方法

方法 1:使用 random() 方法

眾所周知,密碼是一組字元或唯一的字串,因此要建立隨機密碼,我們使用 random() 方法。此方法用於建立指定範圍內的隨機字串。

語法

func random(in: Range)

這裡,random 函式只接受一個引數,即範圍。它表示建立隨機值的範圍。其值不能為空。

演算法

  • 步驟 1 - 建立一個函式,該函式以密碼長度作為輸入。

  • 步驟 2 - 此函式建立三個變數來儲存:大寫和小寫字母、數字和特殊字元。

  • 步驟 3 - 將所有三個變數組合成一個字串。

  • 步驟 4 - 建立一個空字串來儲存新密碼。

  • 步驟 5 - 執行一個 for-in 迴圈,遍歷給定的長度並從給定的字元集中隨機選擇字元。

  • 步驟 6 - 將隨機選擇的字元追加到新字串中。

  • 步驟 7 - 返回最終密碼。

  • 步驟 8 - 建立一個變數來儲存密碼的長度。

  • 步驟 9 - 呼叫函式並將長度傳遞到字串中。

  • 步驟 10 - 顯示輸出。

示例

在下面的 Swift 程式中,我們將生成一個隨機密碼。為此,我們將定義一個函式,該函式以密碼長度作為輸入並返回所需大小的隨機密碼。此函式使用大寫、小寫、數字和特殊字元來生成密碼。它使用 Int.random(in:0..

import Foundation
import Glibc

func createRandomPassword(size: Int) -> String 
{
    let chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
    let nums = "0123456789"
    let specialChars = "!@$%#^(&)*_-+~=`|[{]}/:;<>,.?/"
    
    let allChars = chars + nums + specialChars 
    var newPassword = ""
    
    for _ in 0..<size {
        let randomIndexValue = Int.random(in: 0..<allChars.count)
        let character = Array(allChars)[randomIndexValue]
        newPassword.append(character)
    }
    return newPassword 
}

let length = 10
let createdPassword = createRandomPassword(size: length)
print("New Password is:", createdPassword)

輸出

New Password is: ui(Kw <BgV+

方法 2:使用 randomElement() 方法

要建立隨機密碼,我們使用 randomElement() 方法。此方法從給定的序列或集合中返回一個隨機元素。

語法

func randomElement()

它返回隨機元素。如果給定的集合為空,則它將返回 nil。

演算法

  • 步驟 1 - 建立一個函式,該函式以密碼長度作為輸入。

  • 步驟 2 - 此函式首先檢查密碼的輸入長度是否有效(即是否大於 8)。如果不是,則返回空字串。

  • 步驟 3 - 如果是,則此函式在字串中有一組多個字元,例如大寫和小寫字母、數字和特殊字元。

  • 步驟 4 - 從給定字串中提取隨機字元,直到達到所需的密碼長度。

  • 步驟 5 - 返回新密碼。

  • 步驟 6 - 建立一個變數來儲存密碼的長度。

  • 步驟 7 - 呼叫函式並將長度傳遞到字串中。

  • 步驟 8 - 顯示輸出。

示例

在下面的 Swift 程式中,我們將生成一個隨機密碼。為此,我們將定義一個函式,該函式以密碼長度作為輸入並返回所需大小的隨機密碼。然後,此函式透過藉助 String((0..

import Foundation
import Glibc

func createRandomPassword(size: Int) -> String{
   if (size < 8){
      return ""
   }
   let pwdChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_-+=<>?"
   let newPassword = String((0..<size).map{ _ in pwdChars.randomElement()! })
   return newPassword
}

let passwordLen = 8
let newPassword = createRandomPassword(size: passwordLen)
 
if newPassword == ""
{
   print("Invalid length of the Password! Try Again")
}
else{
   print("New Password is:", newPassword) 
}

輸出

New Password is: luCia+@a

結論

這就是我們生成密碼的方式。密碼就像某些帳戶上的鎖的鑰匙。它也用於網路安全、檔案加密、應用程式身份驗證等。它應該對每個帳戶都是唯一的,並且應保密,不要與其他人共享。

更新於: 2023年6月15日

509 次瀏覽

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告