Guest User

Untitled

a guest
Oct 18th, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. class VigenereCipher
  2. ALPHA = ('A'..'Z').to_a
  3.  
  4. def encode(cleartext,key)
  5. scrttxt = prepare_text(cleartext)
  6. scrtky = prepare_key(key, scrttxt.length)
  7. ciphertext = ""
  8. for i in 0...(scrttxt.length)
  9. ciphertext += ALPHA[(ALPHA.index(scrttxt[i]) + ALPHA.index(scrtky[i])) % 26 ]
  10. end
  11. ciphertext
  12. end
  13.  
  14. def decode(ciphertext,key)
  15. scrttxt = prepare_text(ciphertext)
  16. scrtky = prepare_key(key,scrttxt.length)
  17. cleartext = ''
  18. for i in 0...(scrttxt.length)
  19. cleartext += ALPHA[(ALPHA.index(scrttxt[i]) - ALPHA.index(scrtky[i])) % 26 ]
  20. end
  21. cleartext
  22. end
  23.  
  24. def prepare_text(text)
  25. text.gsub(/\s/, '').upcase.split ''
  26. end
  27.  
  28. def prepare_key(key, length)
  29. key += key while key.length < length
  30. key[0..length].upcase.split ''
  31. end
  32. end
  33.  
  34. decoderring = VigenereCipher.new
  35. secret = decoderring.encode('Dude you are a total kerl where are you', 'proctor')
  36. secret_revealed = decoderring.decode(secret,'proctor')
  37. puts secret
  38. puts secret_revealed
Add Comment
Please, Sign In to add comment