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