local lud = require "ludweb"
local function get_pass(prompt)
io.write(prompt)
os.execute("stty -echo")
local pass = io.read()
os.execute("stty echo")
io.write("\n")
return pass
end
local function get_salt()
return lud.crypt.urandom(32)
end
local function hash_pass(pass, salt)
return lud.crypt.pbkdf2(pass, salt, 10000, 64)
end
if arg[0] ~= "hash.lua" then
return {get_salt=get_salt, hash_pass=hash_pass}
end
local pass, pass2
repeat
pass = get_pass("password: ")
pass2 = get_pass("repeat : ")
until pass2 == pass
local salt = get_salt()
local hash = hash_pass(pass, salt)
local salt_b64 = lud.crypt.b64_enc(salt)
local hash_b64 = lud.crypt.b64_enc(hash)
print("salt: " .. salt_b64)
print("hash: " .. hash_b64)