require 'digest/sha2'
require 'active_record'
ActiveRecord::Base.configurations = YAML.load_file('database.yml')
ActiveRecord::Base.establish_connection :development
class Account < ActiveRecord::Base
end
puts "ユーザー名を入力してください"
trial_username = gets
puts "パスワードを入力してください"
trial_passwd = gets
begin
a = Account.find(trial_username)
db_username = a.id
db_salt = a.salt
db_hashed = a.hashed
db_algo = a.algo
rescue #データベースにないユーザー名が入力されたとき
puts "User #{trial_username} is not found."
exit(-1)
end
if db_algo == "1"
trial_hashed = Digest::SHA256.hexdigest(trial_passwd + db_salt)
else
puts "Unknown algorithm is used for user #{trial_username}"
exit(-2)
end
puts "--- DB ---"
puts "username = #{db_username}"
puts "salt = #{db_salt}"
puts "algorithm = #{db_algo}"
puts "hashed passwd = #{db_hashed}"
puts ""
puts "--- TRIAL ---"
puts "username = #{trial_username}"
puts "passwd = #{trial_passwd}"
puts "hashed passwd = #{trial_hashed}"
puts ""
if db_hashed == trial_hashed
puts "Login Success"
else
puts "Login Failure"
end