RosettaCodeData/Task/Password-generator/Arturo/password-generator.arturo
2026-04-30 12:34:36 -04:00

34 lines
775 B
Text

lowercase: to :block 'a'..'z'
uppercase: to :block 'A'..'Z'
digits: to :block '0'..'9'
other: split "!\"#$%&'()*+,-./:;<=>?@[]^_{|}~"
any: lowercase ++ uppercase ++ digits ++ other
generate: function [length][
if length < 4 [
print (color #red "ERROR: ") ++ "password length too short"
exit
]
chars: @[sample lowercase sample uppercase sample digits sample other]
while [length > size chars][
'chars ++ sample any
]
join shuffle chars
]
if zero? arg [
print {
---------------------------------
Arturo password generator
(c) 2021 drkameleon
---------------------------------
usage: passgen.art <length>
}
exit
]
loop 1..10 'x [
print generate to :integer first arg
]