/ArEncrypt

Simple one method encryption for active record

Primary LanguageRubyMIT LicenseMIT

ArEncrypt
===========

This is a plugin to make fields easily encrypt-able. It works much like the serialize method.

Encryption is done before save using Digest::SHA1.hexdigest()


Example
=======

# class User < ActiveRecord::Base
#   
#   attr_accessor :confirm_password
#   
#   validate :password_match
#   encrypt :password
#   encrypt :ssn
#   encrypt :confirm_password
#   
#   
#   def password_match
#     errors.add(:password, "confirmation must match.") if self.password_changed? && (self.password != self.confirm_password)
#   end
#   
# end

you can also redefine the encryption method by overriding the encrypt method of the ArEncrypt module

# module ArEncrypt
#   def self.encrypt(string)
#     Digest::SHA1.hexdigest(string).to_s
#   end
# end

to check for a match you just call the attribute that is encrypted with _match? on the end
example:
u = User.first
u.password_match?('correctpassword')

to find a user with a matching ssn
User.ssn_find('123456789')

to find all users with a matching ssn
User.ssn_find_all('123456789')

added an option of finds to extend the search for unencrypted parameters

to find all users with a matching ssn and name
User.ssn_find_all('123456789', :name=>'john')



Copyright (c) 2010 Kelly Mahan, released under the MIT license