课程《信息系统安全》的大作业,在网上找到一篇硕士论文,基于此模拟实现一个一次口令身份认证,称为NOTP。
总体的设计思路如下:
客户端:
服务端:
贴上服务端的代码:
服务端有注册阶段和验证阶段
if __name__ == "__main__":
tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
address = ('', 8888)
tcp_socket.bind(address)
print("开始连接...")
tcp_socket.listen(5)
while True:
client_socket, clientaddr = tcp_socket.accept()
data = ''
recv_data = client_socket.recv(2048)
data += recv_data.decode('utf8')
print(data)
if data == "enroll":
print("开始注册")
client_socket.send('ok'.encode('utf8'))
con.enroll(client_socket, tcp_socket)
elif data == "login":