Guest User

Untitled

a guest
Oct 18th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.45 KB | None | 0 0
  1. def encrypt(sentence, permutation_level = -3)
  2. return "" if sentence.empty?
  3. alphabet = ("A".."Z").to_a
  4. # 1. Split string into letters
  5. letters = sentence.upcase.split("")
  6. # 2. Go through each letter
  7. result = ""
  8. # letters.each do |letter|
  9. # # 3. Find index in list of letters
  10. # letter_index = alphabet.index(letter)
  11. # # 4. Shift index and store new value
  12. # new_index = letter_index + permutation_level if letter_index
  13. # new_letter = letter_index.nil? ? letter : alphabet[new_index]
  14. # # 5. Join string together
  15. # result += new_letter
  16. # end
  17. # # 6. Return string
  18.  
  19.  
  20. letters.map do |letter|
  21. letter_index = alphabet.index(letter)
  22. new_index = letter_index + permutation_level if letter_index
  23. new_letter = letter_index.nil? ? letter : alphabet[new_index]
  24. new_letter
  25. end.join
  26. # result
  27. end
  28.  
  29. def decrypt(sentence, permutation_level = 3)
  30. encrypt(sentence, permutation_level)
  31. end
  32.  
  33. sentence = "FK ZOVMQLDOXMEV, X ZXBPXO ZFMEBO, XIPL HKLTK XP ZXBPXO'P ZFMEBO, QEB PEFCQ ZFMEBO, ZXBPXO'P ZLAB LO ZXBPXO PEFCQ, FP LKB LC QEB PFJMIBPQ XKA JLPQ TFABIV HKLTK BKZOVMQFLK QBZEKFNRBP. FQ FP X QVMB LC PRYPQFQRQFLK ZFMEBO FK TEFZE BXZE IBQQBO FK QEB MIXFKQBUQ FP OBMIXZBA YV X IBQQBO PLJB CFUBA KRJYBO LC MLPFQFLKP ALTK QEB XIMEXYBQ. CLO BUXJMIB, TFQE X IBCQ PEFCQ LC 3, A TLRIA YB OBMIXZBA YV X, B TLRIA YBZLJB Y, XKA PL LK. QEB JBQELA FP KXJBA XCQBO GRIFRP ZXBPXO, TEL RPBA FQ FK EFP MOFSXQB ZLOOBPMLKABKZB."
  34.  
  35. puts decrypt(sentence)
Add Comment
Please, Sign In to add comment