RosettaCodeData/Task/Password-generator/Lua/password-generator.lua

31 lines
866 B
Lua

function randPW (length)
local index, pw, rnd = 0, ""
local chars = {
"ABCDEFGHIJKLMNOPQRSTUVWXYZ",
"abcdefghijklmnopqrstuvwxyz",
"0123456789",
"!\"#$%&'()*+,-./:;<=>?@[]^_{|}~"
}
repeat
index = index + 1
rnd = math.random(chars[index]:len())
if math.random(2) == 1 then
pw = pw .. chars[index]:sub(rnd, rnd)
else
pw = chars[index]:sub(rnd, rnd) .. pw
end
index = index % #chars
until pw:len() >= length
return pw
end
math.randomseed(os.time())
if #arg ~= 2 then
print("\npwgen.lua")
print("=========\n")
print("A Lua script to generate random passwords.\n")
print("Usage: lua pwgen.lua [password length] [number of passwords to generate]\n")
os.exit()
end
for i = 1, arg[2] do print(randPW(tonumber(arg[1]))) end