МЕССЕНДЖЕР НА PYTHON С ШИФРОВАНИЕМ

Мессенджеры с шифрованием данных стали известны после скандалов с утечками пользовательской информации. К счастью, в Python есть множество библиотек для шифрования, которые можно использовать в своих проектах.

Пример кода для создания мессенджера на Python с использованием шифрования:

import socket
import threading
import hashlib
class Server:
def __init__(self):
self.host = '127.0.0.1'
self.port = 55555
self.server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.server.bind((self.host, self.port))
self.server.listen()
print(f"Server listening on {self.host}:{self.port}")
self.users = []
self.usernames = []
def broadcast(self, message):
for user in self.users:
user.send(message)
def handle(self, user):
while True:
try:
message = user.recv(1024)
self.broadcast(message)
except:
index = self.users.index(user)
self.users.remove(user)
username = self.usernames[index]
self.broadcast(f'{username} left the chat!'.encode('ascii'))
self.usernames.remove(username)
break
def receive(self):
while True:
user, address = self.server.accept()
print(f"Connected with {str(address)}")
user.send('USERNAME'.encode('ascii'))
username = user.recv(1024).decode('ascii')
self.usernames.append(username)
self.users.append(user)
print(f"Username of user: {username}")
self.broadcast(f"{username} joined the chat!".encode('ascii'))
user.send('Connected to the server!'.encode('ascii'))
thread = threading.Thread(target=self.handle, args=(user,))
thread.start()
class Client:
def __init__(self):
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.socket.connect(('127.0.0.1', 55555))
self.username = input("Enter username: ")
self.socket.send(self.username.encode('ascii'))
self.message = ''
receive_thread = threading.Thread(target=self.receive)
receive_thread.start()
def receive(self):
while True:
try:
message = self.socket.recv(1024).decode('ascii')
if message == 'USERNAME':
self.socket.send(self.username.encode('ascii'))
< else:
print(message)
except:
print("An error occurred!")
self.socket.close()
break
def write(self):
while True:
self.message = f"{self.username}: " + input('')
self.socket.send(self.message.encode('ascii'))
def main():
print("Type 'server' to start the server or 'client' to start the client")
mode = input() # server or client
if mode == 'server':
server = Server()
elif mode == 'client':
client = Client()
client.write()
main()

Онлайн чат на Python в 100 строк кода!

Проекты на PYTHON / СОЗДАНИЕ ЧАТА с графическим интерфейсом

Криптография и шифрование на Python. Основы для начинающих

Создаём Мессенджер на Python. Система авторизации с базой данных

ВРЕМЯ СООБЩЕНИЯ И ПРОБЛЕМЫ ШИФРОВАНИЯ. СОКЕТ ЧАТ #3.2 - Python 3, Питон 3

Как сделать свой скрипт для шифрования (+ задачка)

BLGPG-888C148B30C4-24-09-19-20

Новые материалы: