From 6574bf8617c82537cedf6a4a542d76a17aec92da Mon Sep 17 00:00:00 2001 From: prmzba57e <1641050300@qq.com> Date: Wed, 13 Dec 2023 09:39:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=89=8D=E7=AB=AF=E7=95=8C=E9=9D=A2=E7=9A=84?= =?UTF-8?q?=E7=AE=80=E5=8D=95=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html_manage.py | 103 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 html_manage.py diff --git a/html_manage.py b/html_manage.py new file mode 100644 index 0000000..8c71ea7 --- /dev/null +++ b/html_manage.py @@ -0,0 +1,103 @@ +import asyncio +import websockets +import os +import rainbow_table +import global_var +import webbrowser as wb + +async def time_server(websocket): + while True: + if(await websocket.recv() == "start"): + print("""\n + 欢迎使用随便做的破烂版彩虹表/生成破解程序。 + 使用说明如下: + + 1. 输入1生成彩虹表 + 2. 输入2破解哈希值 + 3. 输入3退出程序 + + """) + await websocket.send('''请开始操作 使用说明如下: + + 1. 输入1生成彩虹表 + 2. 输入2破解哈希值 + 3. 输入3退出程序''') + op = await websocket.recv() + # op = input("请输入操作选项:") + print("op1:"+op) + if op == '1': + await websocket.send("""生成命令格式如下:algorithm charset min_length max_length cahin_length chain_number index + 参数详解:\n + -algorithm:LM,NTLM,MD5,SHA1,SHA256\n + -charset:'numeric', 'alpha', 'alpha_numeric', 'loweralpha', 'loweralpha_numeric',\n + 'mixalpha', 'mixalpha_numeric', 'ascii_32_95', 'ascii_32_65_123_4', 'alpha_numeric_symbol32_space' + 等,具体可以看同目录下的charset.txt进行确认。 + -min_length and max_length:指定想生成的表的密码范围。 + -chain_length:指定单条链的长度(进行几次约简函数和哈希函数操作)。 + -chain_number:指定表内总共的链数量。 + -index:索引值,用于确保使用的归约函数不同。""") + print(""" + 生成命令格式如下:algorithm charset min_length max_length cahin_length chain_number index\n + 参数详解: + -algorithm:LM,NTLM,MD5,SHA1,SHA256 + -charset:'numeric', 'alpha', 'alpha_numeric', 'loweralpha', 'loweralpha_numeric', + 'mixalpha', 'mixalpha_numeric', 'ascii_32_95', 'ascii_32_65_123_4', 'alpha_numeric_symbol32_space' + 等,具体可以看同目录下的charset.txt进行确认。 + -min_length and max_length:指定想生成的表的密码范围。 + -chain_length:指定单条链的长度(进行几次约简函数和哈希函数操作)。 + -chain_number:指定表内总共的链数量。 + -index:索引值,用于确保使用的归约函数不同。""") + op = await websocket.recv() + print("op2:" + op) + try: + algorithm, charset_type, min_length, max_length, chain_length, chain_number, table_index = op.split() + await websocket.send("请等待") + rainbow_table.rtgen(algorithm, charset_type, int(min_length), int(max_length), int(chain_length), int(chain_number), int(table_index)).table_generate() + await websocket.send(global_var.global_result) + except Exception as e: + result = (f'\n发生错误,请检查输入的指令格式或哈希格式是否有误.' + str(e)) + await websocket.send(result) + print(f'发生错误,请检查输入的指令格式是否有误.', e) + elif op == '2': + await websocket.send(""" + 破解指令格式如下:to_crack_hash_string rainbow_table_name\n + 参数详解: + -to_ceack_hash_string:输入要查表的哈希值。 + -rainbow_table_name:默认读取工作目录下'.\\output'内的文件,请确保其中存在生成的表。\n""") + print(""" + 破解指令格式如下:to_crack_hash_string rainbow_table_name\n + 参数详解: + -to_ceack_hash_string:输入要查表的哈希值。 + -rainbow_table_name:默认读取工作目录下'.\\output'内的文件,请确保其中存在生成的表。\n""") + op = await websocket.recv() + print("op2:" + op) + try: + value = op.split() + hash_string, f_name = value + file_path = os.path.join(".\\output", f_name) + search = rainbow_table.rtsearch(hash_string, file_path) + await websocket.send("请等待") + search.crack() + await websocket.send(global_var.global_result) + except Exception as e: + result = (f'\n发生错误,请检查输入的指令格式或哈希格式是否有误.' + str(e)) + await websocket.send(result) + print(f'\n发生错误,请检查输入的指令格式或哈希格式是否有误.', e) + elif op == '3': + await websocket.send("\n感谢您的使用^_^") + print("\n感谢您的使用^_^") + break + else: + await websocket.send("还没有定义这个操作哦。") + print("还没有定义这个操作哦。") + await websocket.recv() + await websocket.send("finish") + # print("\n键入任何值以继续程序") + # input("按任意键继续...") + + + +start_server = websockets.serve(time_server, 'localhost', 5001) +asyncio.get_event_loop().run_until_complete(start_server) +wb.open(r"file:///C:\Users\colo\Desktop\彩虹表_工程文件V1.6.1\彩虹表_工程文件V1.6.1(html)\my.html") +asyncio.get_event_loop().run_forever()