Advertisement
Guest User

Untitled

a guest
Jan 25th, 2020
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.06 KB | None | 0 0
  1. #!/usr/bin/python
  2. #coding: utf-8
  3. import socket
  4. import sys
  5. import time
  6. from Crypto.Cipher import XOR
  7. import base64
  8. import binascii
  9. import threading #fix
  10. ######lo compiliamo assieme questo###
  11. keyz = "sdhsfd3434YYAI@pogna" #
  12. ip = "51.178.52.91" #
  13. #####################################
  14. #incorrect padding
  15. #keyboard interrupt
  16. #login, who, auth, part
  17. try:
  18. username = sys.argv[1]
  19. except IndexError:
  20. print("Utilizzo: python client_chat.py nickname")
  21. exit()
  22. def encrypt(msg, key):
  23. key = key
  24. cipher = XOR.new(key)
  25. encrypted_msg = base64.b64encode(cipher.encrypt(msg))
  26. return encrypted_msg.decode("utf-8")
  27.  
  28. def decrypt(crypted_msg, key):
  29. key = key
  30. cipher = XOR.new(key)
  31. try:
  32. decrypted_msg = cipher.decrypt(base64.b64decode(crypted_msg))
  33. except binascii.Error:
  34. return crypted_msg
  35. except TypeError:
  36. return crypted_msg
  37. return decrypted_msg
  38.  
  39.  
  40.  
  41. s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  42. try:
  43. s.connect((ip, 8934))
  44. except socket.error:
  45. print("Controlla la connessione.")
  46. exit()
  47. def read(): #fix
  48. while True: #fix
  49. data = s.recv(4096) #fix
  50. time.sleep(0.1)
  51. user = data.split(":")[0] #fix
  52. try:
  53. msg = decrypt(data.split(":")[1].strip(), keyz) #fix
  54. if "[104]" in data:
  55. user = data.split(":")[1]
  56. print("{} connesso".format(user))
  57. else:
  58. print("<{}>: {}".format(user, msg)) #fix
  59. except IndexError:
  60. pass
  61.  
  62. def write(): #fix
  63. message = raw_input() #fix
  64. time.sleep(0.3)
  65. s.send(encrypt("{}:{}".format(username,message),keyz)) # fix
  66.  
  67. t = threading.Thread(target=read, args=[]) #fix
  68. t.setDaemon(True)
  69. s.send(encrypt("{}:{}".format(username,"!hello!3498758972389712387"),keyz))
  70. #fix
  71. try:
  72. t.start() #fix
  73. while True:
  74. write() #fix
  75. except KeyboardInterrupt:
  76. print("Programma interrotto dall'utente (ctrl+c)")
  77. exit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement