Refcode
Currently a standalone gem for converting arbitrary Ruby objects into encrypted, URL-safe strings. The strings can be simply decrypted later to be used by your application.
Refcode was conceived as a way to attach referral data to tracking links. Encryption makes it unlikely that the links can be tampered with.
Implementation
Encryption using the AES-256-CBC algorithm with https://github.com/attr-encrypted/encryptor which wraps the Ruby OpenSSL library.
Base64 encoding is handled by https://github.com/nojima/base64url which implements a slight tweak to the standard Base64 algorithm to create URL-safe strings.
Serialization with YAML.
Installation
Add this line to your application's Gemfile:
gem 'refcode'
And then execute:
$ bundle
Or install it yourself as:
$ gem install refcode
Usage
encoder = Refcode::Encoder.new do |e|
e.secret = "a long crunchy secret"
e.salt = "some salt"
end
something = OpenStruct.new(channel: 'facebook', action: 'message', user_id: 43765)
encoded_param = encoder.encode something
# in some future request...
something = encoder.decode params[:encoded_param]
puts something.channel # 'facebook'
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request