J'ai un fichier YAML contenant les noms d'utilisateur et les mots de passe.Valeur de cryptage dans le fichier YAML dans le hachage MD5
Vue d'ensemble de YAML:
users: test: password: test test2: password: test2
Je veux chiffrer la valeur de mot de passe dans un hachage MD5 à l'aide Digest::MD5
par exemple:
user:
Lost Bam:
password: testtesttest #<=I want to overwrite this password with a MD5 hash
Digest est-il un moyen de chiffrer une valeur de hachage? Si oui, comment puis-je implémenter ceci dans un fichier YAML?
md5.rb Source:
require 'yaml'
require 'digest'
private
def load_file
File.exist?('info.yml') ? YAML.load_file('info.yml') : {users: {}}
end
def read_file
File.read('info.yml')
end
def save_file(hash)
File.open('info.yml', 'w') { |f| f.write(hash.to_yaml)}
end
def add_user
hash = load_file
hash["users"][prompt('Enter username:')] =
{ "password" => prompt('Enter password:') }
puts "Encrypt information?"
information = gets.chomp
case input
when /yes/i
# hash = Digest::MD5.digest(["password"]'value')<-Doesn't work
#
#This is where I want to be able to encrypt the
#value of the password key that was entered by the user
#
# save_file(hash)
else
puts "Add another?"#Not completed yet
end
save_file(hash)
end
main.rb Source:
require_relative 'md5.rb'
def main
puts <<-END.gsub(/^\s*>/, '')
>
>To load information type "L" to quit system type "Q"
>
END
input = gets.chomp.upcase
case input
when "L"
add_user
when "Q"
exit_system
else
exit_lock
end
end
def exit_system
puts "Exiting..."
exit
end
def exit_lock
puts "Locked out, please contact system administrator"
exit
end
def restart
puts "Encrypt more?"
input = gets.chomp
if input =~ /yes/i
return true
else
exit_system
end
end
def prompt(message)
puts message
gets.chomp
end
main
Voulez-vous dire digérer les valeurs après avoir lu le Fichier YAML? – Edward
@Edward oui je fais, j'ai édité la question – 13aal
Que voulez-vous dire "certaines choses" et pourquoi est-il difficile à mettre en œuvre dans YAML? S'il vous plaît fournir un code qui montre ce que vous essayez de faire, ou qui montre où vous avez cherché et pourquoi les réponses ne vous ont pas aidé à écrire le code. Comme c'est pas clair ce que vous avez fait. S'il vous plaît lire "[demander]". –