Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class VigenereCipher
- ALPHA = ('A'..'Z').to_a
- def encode(cleartext,key)
- scrttxt = prepare_text(cleartext)
- scrtky = prepare_key(key, scrttxt.length)
- ciphertext = ""
- for i in 0...(scrttxt.length)
- ciphertext += ALPHA[(ALPHA.index(scrttxt[i]) + ALPHA.index(scrtky[i])) % 26 ]
- end
- ciphertext
- end
- def decode(ciphertext,key)
- scrttxt = prepare_text(ciphertext)
- scrtky = prepare_key(key,scrttxt.length)
- cleartext = ''
- for i in 0...(scrttxt.length)
- cleartext += ALPHA[(ALPHA.index(scrttxt[i]) - ALPHA.index(scrtky[i])) % 26 ]
- end
- cleartext
- end
- def prepare_text(text)
- text.gsub(/\s/, '').upcase.split ''
- end
- def prepare_key(key, length)
- key += key while key.length < length
- key[0..length].upcase.split ''
- end
- end
- decoderring = VigenereCipher.new
- secret = decoderring.encode('Dude you are a total kerl where are you', 'proctor')
- secret_revealed = decoderring.decode(secret,'proctor')
- puts secret
- puts secret_revealed
Add Comment
Please, Sign In to add comment