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.. 要建立隨機密碼,我們使用 randomElement() 方法。此方法從給定的序列或集合中返回一個隨機元素。 它返回隨機元素。如果給定的集合為空,則它將返回 nil。 步驟 1 - 建立一個函式,該函式以密碼長度作為輸入。 步驟 2 - 此函式首先檢查密碼的輸入長度是否有效(即是否大於 8)。如果不是,則返回空字串。 步驟 3 - 如果是,則此函式在字串中有一組多個字元,例如大寫和小寫字母、數字和特殊字元。 步驟 4 - 從給定字串中提取隨機字元,直到達到所需的密碼長度。 步驟 5 - 返回新密碼。 步驟 6 - 建立一個變數來儲存密碼的長度。 步驟 7 - 呼叫函式並將長度傳遞到字串中。 步驟 8 - 顯示輸出。 在下面的 Swift 程式中,我們將生成一個隨機密碼。為此,我們將定義一個函式,該函式以密碼長度作為輸入並返回所需大小的隨機密碼。然後,此函式透過藉助 String((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() 方法
語法
func randomElement()
演算法
示例
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
結論