On Sat, Feb 4, 2012 at 18:43, John Merlino <[email protected]> wrote:
> The % is modulus (remainder) operator and ^ is bitwise. Specifically, bitwise XOR. Very important to know what operation is being done.... :-) > But why are the ^ and % operators used here: > > def encrypt(reader, writer) > key_index = 0 > while not reader.eof? > clear_char = reader.getc > encrypted_char = clear_char ^ @key[key_index] > writer.putc(encrypted_char) > key_index = (key_index + 1) % @key.size > end > end You're using ^ because you are encrypting each char by doing a bitwise XOR with the corresponding byte of the key. You're using % because the the key, in this case, is of finite length. If your plaintext is longer, then you have to repeat the key, i.e., start over at the beginning of the key but keep going within the plaintext. (Or of course come up with a new key, and find some way to tell the correspondent what the new key is, but that's a whole 'nother problem.) Google things like basic cryptography, introduction to cryptography, cryptography tutorial, etc. for more info. -Dave -- Dave Aronson: Available Cleared Ruby on Rails Freelancer (NoVa/DC/Remote) -- see www.DaveAronson.com, and blogs at www.Codosaur.us, www.Dare2XL.com, www.RecruitingRants.com -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

