def encrypt(plain_text, password = nil, salt = nil)
      password = password.nil? ? Hoodie.crypto.password : password
      salt     = salt.nil?     ? Hoodie.crypto.salt     : salt

      cipher      = new_cipher(:encrypt, password, salt)
      cipher.iv   = iv = cipher.random_iv
      ciphertext  = cipher.update(plain_text)
      ciphertext << cipher.final
      Base64.encode64(combine_iv_ciphertext(iv, ciphertext))
    end
def encrypt(plain_text, password = nil, salt = nil)
      password = password.nil? ? Hoodie.crypto.password : password
      salt     = salt.nil?     ? Hoodie.crypto.salt     : salt

      cipher      = new_cipher(:encrypt, password, salt)
      cipher.iv   = iv = cipher.random_iv
      ciphertext  = cipher.update(plain_text)
      ciphertext << cipher.final
      Base64.encode64(combine_iv_ciphertext(iv, ciphertext))
    end
Encrypt the given string using the AES-256-CBC algorithm.

 @param [String] plain_text
   The text to encrypt.

 @param [String] password
   Secret passphrase to encrypt with.

 @param [String] salt
   A cryptographically secure pseudo-random string (SecureRandom.base64)
   to add a little spice to your encryption.

 @return [String]
   Encrypted text, can be deciphered with #decrypt.

 @api public