No release in over 3 years
Low commit activity in last 3 years
Dead-simple string encryption/decryption syntax
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

encrypted_strings ¶ ↑

encrypted_strings provides dead-simple string encryption/decryption syntax.

Resources¶ ↑

API

Bugs

Development

Testing

Source

  • git://github.com/pluginaweek/encrypted_strings.git

Mailing List

Description¶ ↑

Encrypting and decrypting data is not exactly the most straightforward and DRY way. encrypted_strings improves the syntax and reduces the complexity, adding straightforward support for encrypting values using SHA-1, Symmetric, and Asymmetric ciphers.

Usage¶ ↑

SHA Encryption¶ ↑

>> password = 'shhhh'
=> "shhhh"
>> encrypted_password = password.encrypt
=> "66c85d26dadde7e1db27e15a0776c921e27143bd"
>> encrypted_password.class
=> String
>> encrypted_password.cipher
=> #<EncryptedStrings::ShaCipher:0x2b9238889460 @salt="salt">
>> encrypted_password == 'shhhh'
=> true
>> encrypted_password.decrypt
NotImplementedError: Decryption is not supported using a(n) EncryptedStrings::ShaCipher
        from ./script/../config/../config/../vendor/plugins/encrypted_strings/lib/encrypted_strings/cipher.rb:13:in `decrypt'
        from ./script/../config/../config/../vendor/plugins/encrypted_strings/lib/encrypted_strings/extensions/string.rb:52:in `decrypt'
        from (irb):40

When encrypt is called, it creates a cipher instance which is used for future encryption and decryption of the string. The default cipher uses SHA-1 encryption. For ciphers that do not support decryption, equality with other strings is tested by encrypting the other string and checking whether the resulting encrypted value is the same.

Symmetric Encryption¶ ↑

>> password = 'shhhh'
=> "shhhh"
>> crypted_password = password.encrypt(:symmetric, :password => 'secret_key')
=> "qSg8vOo6QfU=\n"
>> crypted_password.class
=> String
>> crypted_password == 'shhhh'
=> true
>> password = crypted_password.decrypt
=> "shhhh"

Asymmetric encryption¶ ↑

>> password = 'shhhh'
=> "shhhh"
>> crypted_password = password.encrypt(:asymmetric, :public_key_file => './public.key', :private_key_file => './private.key')
=> "NEwVzcikYUKfS8HTc9L9eg/dMxBCLZ/nFr7J1aQYjkl3I2MPUD0lmjr/saC6\nTJEPwOl60Ki24H8TUwnGtZy14A==\n"
>> crypted_password.class
=> String
>> crypted_password == 'shhhh'
=> true
>> password = crypted_password.decrypt
=> "shhhh"

Dependencies¶ ↑

None.

References¶ ↑