lucifer
Lucifer is Rails plugin which utilizes the ezcrypto gem to encrypt/decrypt database columns transparently.
Why is it called Lucifer? en.wikipedia.org/wiki/Lucifer_(cipher)
Installation
./script/plugin install git://github.com/jmckible/lucifer.git
Lucifer looks for a key and salt in config/key.yml. See key.yml.example
Usage
Add Lucifer to a class like so:
class Person < ActiveRecord::Base
# Database columns - id(integer), ssn_b(binary)
encrypt_attributes
end
Lucifer will treat any binary column that ends in _b as encryptable.
person = Person.new :ssn=>'000-00-0000'
=> Person...
person.save
=> true
Person.first.ssn
=> '000-00-0000'
If you check out the database, you'll see
> select * from people;
---------------------------------
| id | ssn_b |
----------------------------------
| 1 | U??6?7f%25(????? |
---------------------------------
Configuration
You can customize Lucifer by passing options like so:
class Person < ActiveRecord::Base
encrypt_attributes :suffix=>'_encrypted', :key_file=>'lucifer.yml'
end
-
:suffix - You can override the _b selector with this option
-
:key_file - If you'd like to use a different file in your config/ directory, pass the name here
Author
-
Lucifer was created by Jordan McKible jordan.mckible.com
-
Available on GitHub at github.com/jmckible/lucifer/tree/master