Add clever little base36 codes for your DataMapper and ActiveRecord objects.
# ActiveRecord class Mug < ActiveRecord::Base have_code 60466169, 12034710206, 81268112 end initech = Mug.create :name=>'initech', :material=>'porcelain' code = initech.code initech == Mug.find_by_code code # DataMapper class Goblet include DataMapper::Resource property :id, Serial property :name, String property :material, String have_code 60466169, 12034710206, 81268112 end kohg = Goblet.create :name=>'king of hyrule', :material=>'gold' code = kohg.code kohg == Goblet.find_by_code code
In order:
- modulus
-
specifies how many different plaintexts and ciphertexts are available.
- a_key
-
multiplied against the plaintext. Must be coprime with the modulus.
- b_key
-
added to the multiplied plaintext. No restrictions, but it’s modulus math, so making it larger than
modulus
is useless.
Change them to whatever you want, write tests to make sure they work as expected.
Affine ciphers are incredibly easy to break. See the readme for the affine
gem or en.wikipedia.org/wiki/Affine_cipher for more.
-
affine
Copyright © 2009 Bryce Kerley. See LICENSE for details.