Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,926 questions

51,859 answers

573 users

How to generate a random password in Swift

1 Answer

0 votes
import Foundation

func generateRandomPassword(length: Int = 12, allowedCharacters: String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()") -> String? {

    guard length > 0 else {
        return nil
    }

    let allowedCharactersCount = allowedCharacters.count

    guard allowedCharactersCount > 0 else {
        return nil
    }

    var randomString = ""

    for _ in 0..<length {
        let randomNum = Int.random(in: 0..<allowedCharactersCount) 
        let randomIndex = allowedCharacters.index(allowedCharacters.startIndex, offsetBy: randomNum)
        let randomCharacter = allowedCharacters[randomIndex]
        randomString += String(randomCharacter)
    }

    return randomString
}

if let password = generateRandomPassword() {
    print("Generated password: \(password)")
}

if let shortPassword = generateRandomPassword(length: 6) {
    print("Short password: \(shortPassword)")
}

if let numericPassword = generateRandomPassword(length: 10, allowedCharacters: "0123456789"){
    print("Numeric password: \(numericPassword)")
}

if let customPassword = generateRandomPassword(length: 16, allowedCharacters: "abc123XYZ"){
    print("Custom password: \(customPassword)")
}



/*
run:

Generated password: YkfBk^seE^Kq
Short password: KUrJ!F
Numeric password: 5933658181
Custom password: 3bYb1abY2X1aY11b

*/

 



answered Dec 22, 2024 by avibootz
...