]> git.immae.eu Git - perso/Immae/Projets/Puppet.git/blob - bin/generate_password
Merge branch 'dev'
[perso/Immae/Projets/Puppet.git] / bin / generate_password
1 #!/bin/env ruby
2
3 require "openssl"
4
5 arguments = ARGV
6
7 if arguments.size != 3
8 puts "generate_password <size> <seed_file> <password_key>"
9 exit
10 end
11
12 size = arguments.shift
13 seed_file = arguments.shift
14 password_key = arguments.shift
15
16 size = size.to_i
17
18 set = ('a' .. 'z').to_a + ('A' .. 'Z').to_a + ('0' .. '9').to_a
19
20 key = "#{File.open(seed_file).read}:#{password_key}"
21
22 password = size.times.collect do |i|
23 set[OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha256'), key, i.to_s).to_i(16) % set.size]
24 end.join
25
26 puts password