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
*/