31 lines
866 B
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
|