module Obfuscate
Public Class Methods
cipher()
click to toggle source
# File lib/bp_obfuscate/obfuscate.rb, line 7 def cipher OpenSSL::Cipher.new('AES-256-CBC') end
cipher_key()
click to toggle source
# File lib/bp_obfuscate/obfuscate.rb, line 11 def cipher_key if defined?(Rails) Rails.application.secrets.secret_key_base elsif ENV["SECRET_KEY_BASE"] ENV["SECRET_KEY_BASE"] else raise NoCipherKey, "you must have a an SECRET_KEY_BASE or be in a rails enviroment" end end
decrypt(value)
click to toggle source
# File lib/bp_obfuscate/obfuscate.rb, line 21 def decrypt(value) c = cipher.decrypt c.key = Digest::SHA256.digest(cipher_key) c.update(Base64.urlsafe_decode64(value.to_s)) + c.final rescue OpenSSL::Cipher::CipherError && ArgumentError return nil end
encrypt(value)
click to toggle source
# File lib/bp_obfuscate/obfuscate.rb, line 29 def encrypt(value) c = cipher.encrypt c.key = Digest::SHA256.digest(cipher_key) Base64.urlsafe_encode64(c.update(value.to_s) + c.final) end