Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Viestin kryptaus, lähetys, vastaanotto ja purku
- # Lähettäjä ALICE, vastaanottaja BOB
- # Kertakäyttöinen julkinen ja privaatti avain häviävät
- # Avaimet luodaan käyttäen elliptic Curve25519 algorithm,
- # (elliptisten käyrien algoritmillä)
- # Käyttää Pythonin PyNaCl-kirjastoa
- # Lähde: https://pynacl.readthedocs.io/en/stable/public/
- # Juhani Kaukoranta 7.2.2024
- from nacl.public import PrivateKey, SealedBox
- # Bob luo oman privaatin ja julkisen avaimensa
- privkeybob = PrivateKey.generate() # BOBin privaatti avain viestin avaamiseksi
- pubkeybob = privkeybob.public_key # BOBin julkinen avain (jolla viestit Bobille)
- # julkinen avain pubkeybob annetaan sille, joka lähettää Bobille viestin
- # ALICE lähettää viestin BOBille tämän julkisen avaimen pubkeybob avulla
- # Ensin lähettäjä ALICE luo salaustyökalun, sealed_box
- # käyttäen BOBin julkista avainta pubkeybob
- sealed_box = SealedBox(pubkeybob) #Salaustyökalu, jonka lähettäjä luo
- # viestin lähettäjä ALICE kirjoittaa tekstinsä
- plaintext = input("Kirjoita selväkielinen teksti: ")
- # plaintext muunnetaan byte-muotoon, kirjaimet utf-8 muodossa
- msg = bytes(plaintext,'utf-8')
- # lähettäjä ALICE kryptaa viestin msg käyttäen luomaansa
- # lähetyslaatikkoa, sealed_box
- encryptedtxt = sealed_box.encrypt(msg) # salattu viesti BOBille
- # ALICE lähettää paketin encryptedtxt BOBille (netin tms kautta)
- # BOB saa paketin encryptedtxt, avaa ja lukee sen
- # Ensin BOB luo avaustyökalun unseal_box privaatilla avaimellaan privkeybob
- unseal_box = SealedBox(privkeybob) # Bobin avaustyökalu
- # Sitten Bob purkaa viestin avaustyökalullaan
- decryptedtxt = unseal_box.decrypt(encryptedtxt)
- # viesti dekoodataan utf-8 -merkistöön,ääkkösetkin näkyvät
- avattutxt = decryptedtxt.decode('utf-8')
- print("Avattu teksti = ",avattutxt)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement