Class: Lhj::CipherHelper

Inherits:
Object
  • Object
show all
Defined in:
lib/lhj/helper/cipher_helper.rb

Constant Summary collapse

CIPHER_KEY =
'1234567890'.freeze
CIPHERIV =
'456'.freeze

Class Method Summary collapse

Class Method Details

.decode(str) ⇒ Object



49
50
51
52
53
54
# File 'lib/lhj/helper/cipher_helper.rb', line 49

def self.decode(str)
  decipher = OpenSSL::Cipher.new('AES-256-CBC').decrypt
  decipher.key = key
  decipher.iv = iv
  decipher.update(Base64.strict_decode64(str)) + decipher.final
end

.decode64_encode(str) ⇒ Object



36
37
38
39
# File 'lib/lhj/helper/cipher_helper.rb', line 36

def self.decode64_encode(str)
  decode_str = decode(str)
  Base64.decode64(decode_str)
end

.encode(data) ⇒ Object



41
42
43
44
45
46
47
# File 'lib/lhj/helper/cipher_helper.rb', line 41

def self.encode(data)
  cipher = OpenSSL::Cipher.new('AES-256-CBC').encrypt
  cipher.key = key
  cipher.iv = iv
  encrypted = cipher.update(data) + cipher.final
  Base64.strict_encode64(encrypted)
end

.encode64_encode(str) ⇒ Object



26
27
28
29
# File 'lib/lhj/helper/cipher_helper.rb', line 26

def self.encode64_encode(str)
  encode_str = Base64.encode64(str)
  encode(encode_str)
end

.ivObject



15
16
17
18
19
# File 'lib/lhj/helper/cipher_helper.rb', line 15

def self.iv
  iv = [CIPHERIV].pack('H*')
  iv << ("\x00" * (16 - iv.length))
  iv
end

.keyObject



9
10
11
12
13
# File 'lib/lhj/helper/cipher_helper.rb', line 9

def self.key
  key = [CIPHER_KEY].pack('H*')
  key << ("\x00" * (32 - key.length))
  key
end

.strict_decode64_encode(str) ⇒ Object



31
32
33
34
# File 'lib/lhj/helper/cipher_helper.rb', line 31

def self.strict_decode64_encode(str)
  decode_str = decode(str)
  Base64.strict_decode64(decode_str)
end

.strict_encode64_encode(str) ⇒ Object



21
22
23
24
# File 'lib/lhj/helper/cipher_helper.rb', line 21

def self.strict_encode64_encode(str)
  encode_str = Base64.strict_encode64(str)
  encode(encode_str)
end