Advertisement
barbos01

Untitled

Oct 27th, 2021
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.40 KB | None | 0 0
  1. """ Criptati folosind cifrul Caesar cu cheie,
  2. fraza COMPUTERS ARE LIKE OLD TESTAMENT GODS, LOTS OF RULES AND NO MERCY (Joseph Campbell). Cuvantul cheie va
  3. fi prenumele vostru, iar cheia de deplasare ultima cifra a zilei voastre de nastere (9 daca e 0)."""
  4.  
  5. alfabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"  # alfabetul englezesc
  6. text = input("Introduceti textul pentru criptare:")  # citim textul pe care dorim sa-l criptam
  7. cuvat_cheie = input("Introduceti cuvantul cheie:")  # citim cuvantul cheie pe care il adaugam la alfabet
  8. cheie_deplasare = int(input("Introduceti cifra de deplasare:"))  # citim cheia de deplasare
  9. cuvat_cheie = cuvat_cheie.upper()
  10. text = text.upper()
  11. for i in range(len(cuvat_cheie)):
  12.     alfabet = alfabet.replace(cuvat_cheie[i], '')  # eliminam literele din alfabet care se regasesc in cuvatul cheie, deoarece nu trebuie sa fie dubluri
  13. alfabet = cuvat_cheie + alfabet  # le concatenam
  14. alfabet_nou = alfabet[len(alfabet) - cheie_deplasare:]  # realizam noul alfabet cu ajutorul cheii de deplasare
  15. alfabet_nou = alfabet_nou + alfabet[:len(alfabet) - cheie_deplasare]
  16. text_nou = list(text)
  17. print(alfabet)  # afisam alfabetele ca sa vedem mai bine schimbarile
  18. print(alfabet_nou)
  19. for i in range(len(text)):  # criptam textul
  20.     for j in range(len(alfabet)):
  21.         if text[i] == alfabet[j]:
  22.             text_nou[i] = alfabet_nou[j]
  23.             break
  24.  
  25. print("".join(text_nou))  # afisam textul
  26.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement