用户验证
使用haslib来实现
-
server服务端
import socket import os import hashlib import time import struct import hmac IP = "" PORT = 0 SECRET_KEY = b"" server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server.bind((IP, PORT)) server.listen(5) client, _ = server.accept() print("一台IP为{}的客户端连接上了我们".format(_)) msg = os.urandom(32) client.send(msg) s_msg = hashlib.sha1(SECRET_KEY) s_msg.update(msg) ret = s_msg.hexdigest() length = struct.unpack("i", client.recv(32))[0] assert_ret = client.recv(length) print(ret == assert_ret) if ret == assert_ret: print("成功连接上了") client.close() server.close() else: client.close() server.close()
-
client客户端
import socket import os import hashlib import time import struct import hmac IP = "" PORT = 0 SECRET_KEY = b"" client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client.connect((IP, PORT)) msg = client.recv(32) s_msg = hashlib.sha1(SECRET_KEY) s_msg.update(msg) ret = s_msg.hexdigest() length = struct.pack("i", len(ret)) client.send(length) client.send(ret) time.sleep(1) print("哈哈") client.close()
使用hmac来实现
-
server服务端
import socket import os import hashlib import time import struct import hmac IP = "" PORT = 0 SECRET_KEY = b"" server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server.bind((IP, PORT)) server.listen(5) client, _ = server.accept() print("一台IP为{}的客户端连接上了我们".format(_)) msg = os.urandom(32) client.send(msg) h = hmac.new(SECRET_KEY, msg, digestmod="MD5") ret = h.digest() length = struct.unpack("i", client.recv(32))[0] assert_ret = client.recv(length) print(ret == assert_ret) if ret == assert_ret: print("成功连接上了") client.close() server.close() else: client.close() server.close()
-
client客户端
import socket import os import hashlib import time import struct import hmac IP = "" PORT = 0 SECRET_KEY = b"" client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client.connect((IP, PORT)) msg = client.recv(32) h = hmac.new(SECRET_KEY, msg, digestmod="MD5") ret = h.digest() length = struct.pack("i", len(ret)) client.send(length) client.send(ret) time.sleep(1) print("哈哈") client.close()
)
length = struct.pack(“i”, len(ret))
client.send(length)
client.send(ret)
time.sleep(1)
print(“哈哈”)
client.close()