Guest User

RSA

a guest
Sep 20th, 2023
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. import socket
  2. import threading
  3.  
  4. import rsa
  5.  
  6.  
  7. public_key, private_key = rsa.newkeys(1024)
  8. public_partner = None
  9.  
  10. choice=input("Do you want to host (1) or connect (2): ")
  11.  
  12. if choice == "1":
  13. server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  14. server.bind(("127.0.0.1", 59000))
  15. server.listen()
  16.  
  17. client, _ = server.accept()
  18.  
  19. client.send(public_key.save_pkcs1("PEM"))
  20. public_partner = rsa.PublicKey.load_pkcs1(client.recv(1024))
  21.  
  22. elif choice == "2":
  23. client= socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  24. client.connect(("127.0.0.1", 59000))
  25. public_partner = rsa.PublicKey.load_pkcs1(client.recv(1024))
  26. client.send(public_key.save_pkcs1("PEM"))
  27.  
  28. else:
  29. exit()
  30.  
  31. def sending_messages(c):
  32. while True:
  33. message=input("")
  34. c.send(rsa.encrypt(message.encode('utf-8'), public_partner))
  35. print("You: " + message)
  36.  
  37. def receiving_messages(c):
  38. while True:
  39. print("Partner:" + rsa.decrypt(c.recv(1024), private_key).decode())
  40.  
  41.  
  42. threading.Thread(target=sending_messages, args=(client,)).start()
  43. threading.Thread(target=receiving_messages, args=(client,)).start()
Advertisement
Add Comment
Please, Sign In to add comment