Class: Kumogata::Crypt

Inherits:
Object
  • Object
show all
Defined in:
lib/kumogata/crypt.rb

Constant Summary collapse

ALGORITHM =
'aes256'
PASSWORD_CHARS =
'abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ123456789_*;:@{}()[]#$%&=-'

Class Method Summary collapse

Class Method Details

.decrypt(pass, str) ⇒ Object



14
15
16
17
18
19
20
# File 'lib/kumogata/crypt.rb', line 14

def decrypt(pass, str)
  IO.popen("openssl enc -d -#{ALGORITHM} -pass pass:#{enquote(pass)}", "r+") {|io|
    io.print Base64.decode64(str)
    io.close_write
    io.read
  }
end

.encrypt(pass, str) ⇒ Object



6
7
8
9
10
11
12
# File 'lib/kumogata/crypt.rb', line 6

def encrypt(pass, str)
  IO.popen("openssl enc -e -#{ALGORITHM} -pass pass:#{enquote(pass)}", "r+") {|io|
    io.print str
    io.close_write
    io.read
  }.encode64
end

.mkpasswd(n) ⇒ Object



22
23
24
# File 'lib/kumogata/crypt.rb', line 22

def mkpasswd(n)
  PASSWORD_CHARS.split(//).sample(n).join
end