Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import socket
- from Crypto.PublicKey import RSA
- import threading
- server_ip = "192.168.1.125"
- port = 8420
- s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- server_key = b""
- server_key_obj = []
- key = b""
- connected = False
- def connect():
- global server_key_obj
- global s
- global key
- key = RSA.generate(2048)
- try:
- print(1)
- s.connect((server_ip, port))
- except socket.error:
- print("server not online")
- connect()
- pub_key = key.publickey().exportKey("DER")
- s.send(b"qgt")
- s.send(pub_key)
- print(2)
- t = threading.Thread(target=reciv_data, daemon=True)
- t.start()
- while True:
- if connected:
- a = input(">")
- cifertext = server_key_obj.encrypt(a.encode(), "x")[0]
- s.send(cifertext)
- def reciv_data():
- global key
- global connected
- global server_key
- global server_key_obj
- first_packet = True
- while True:
- try:
- data = s.recv(1024)
- if len(data) > 0 and first_packet != True:
- print(key.decrypt(data).decode())
- else:
- server_key = data
- first_packet = False
- server_key_obj = RSA.importKey(server_key)
- print("Handshake done")
- connected = True
- except socket.error:
- print("server offline")
- break
- def main():
- connect()
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement