Advertisement
jukaukor

PyNaCl_encrypt_decrypt.py

Feb 7th, 2024
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.81 KB | None | 0 0
  1. # Viestin kryptaus, lähetys, vastaanotto ja purku
  2. # Lähettäjä ALICE, vastaanottaja BOB
  3. # Kertakäyttöinen julkinen ja privaatti avain häviävät
  4. # Avaimet luodaan käyttäen elliptic Curve25519 algorithm,
  5. # (elliptisten käyrien algoritmillä)
  6. # Käyttää Pythonin PyNaCl-kirjastoa
  7. # Lähde: https://pynacl.readthedocs.io/en/stable/public/
  8. # Juhani Kaukoranta 7.2.2024
  9.  
  10. from nacl.public import PrivateKey, SealedBox
  11.  
  12. # Bob luo oman privaatin ja julkisen avaimensa
  13. privkeybob = PrivateKey.generate() # BOBin privaatti avain viestin avaamiseksi
  14. pubkeybob = privkeybob.public_key # BOBin julkinen avain (jolla viestit Bobille)
  15. # julkinen avain pubkeybob annetaan sille, joka lähettää Bobille viestin
  16.  
  17. # ALICE lähettää viestin BOBille tämän julkisen avaimen pubkeybob avulla
  18. # Ensin lähettäjä ALICE luo salaustyökalun, sealed_box
  19. # käyttäen BOBin julkista avainta pubkeybob
  20. sealed_box = SealedBox(pubkeybob) #Salaustyökalu, jonka lähettäjä luo
  21.  
  22. # viestin lähettäjä ALICE kirjoittaa tekstinsä
  23. plaintext = input("Kirjoita selväkielinen teksti: ")
  24. # plaintext muunnetaan byte-muotoon, kirjaimet utf-8 muodossa
  25. msg = bytes(plaintext,'utf-8')
  26. # lähettäjä ALICE kryptaa viestin msg käyttäen luomaansa
  27. # lähetyslaatikkoa, sealed_box
  28. encryptedtxt = sealed_box.encrypt(msg) # salattu viesti BOBille
  29. # ALICE lähettää paketin encryptedtxt BOBille (netin tms kautta)
  30.  
  31. # BOB saa paketin encryptedtxt, avaa ja lukee sen
  32. # Ensin BOB luo avaustyökalun unseal_box privaatilla avaimellaan privkeybob
  33. unseal_box = SealedBox(privkeybob) # Bobin avaustyökalu
  34. # Sitten Bob purkaa viestin avaustyökalullaan
  35. decryptedtxt = unseal_box.decrypt(encryptedtxt)
  36. # viesti dekoodataan utf-8 -merkistöön,ääkkösetkin näkyvät
  37. avattutxt = decryptedtxt.decode('utf-8')
  38. print("Avattu teksti = ",avattutxt)
  39.  
  40.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement