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 次浏览

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告