Skip to content

Commit

Permalink
0.5.10 依赖函数重命名,无用
Browse files Browse the repository at this point in the history
  • Loading branch information
winezer0 committed Jul 10, 2023
1 parent 0ace478 commit 36708d8
Show file tree
Hide file tree
Showing 5 changed files with 125 additions and 87 deletions.
Empty file.
121 changes: 121 additions & 0 deletions libs/lib_collect_opera/collect_operation.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
import itertools


def frozen_tuple_list(tuple_list, link_symbol="<-->"):
"""
# 冻结(账号-密码)集合列表, 将集合列表转为字符串列表
:param tuple_list:
:param link_symbol:
:return:
"""
unique_lst = []
for str1, str2 in tuple_list:
unique_lst.append(f"{str1}{link_symbol}{str2}")
return unique_lst


def unfrozen_tuple_list(str_list, link_symbol="<-->"):
"""
# 解冻(账号-密码)字符串列表, 将字符串列表转为元组列表
:param str_list:
:param link_symbol:
:return:
"""
tuple_list = []
for str_ in str_list:
tuple_list.append(tuple(str_.split(link_symbol, 1)))
return tuple_list


def de_duplicate_tuple_list(tuple_list):
"""
# 去重(账号-密码)元组列表 PS:列表元素如果是元组也可以直接set去重
:param tuple_list:
:return:
"""
# 将元组转换为元素不可变的类型,字符串列表
# 然后使用set()函数将其转换为集合,
# 最后再将集合转换回列表即可
# frozenset(tuple) 会导致元组导致无序 # 不能用
unique_lst = frozen_tuple_list(tuple_list, link_symbol="<-->")
if unique_lst:
unique_lst = list(set(unique_lst))
tuple_list = unfrozen_tuple_list(unique_lst, link_symbol="<-->")
return tuple_list


def frozen_collect_list(tuple_list, link_symbol="<-->"):
"""
# 冻结(不定长)集合列表, 将集合列表转为字符串列表
:param tuple_list:
:param link_symbol:
:return:
"""
unique_lst = []
for tpl in tuple_list:
unique_lst.append(link_symbol.join(map(str, tpl)))
return unique_lst


def unfrozen_collect_list(str_list, link_symbol="<-->"):
"""
# 解冻(不定长)字符串列表, 将字符串列表转为元组列表
:param str_list:
:param link_symbol:
:return:
"""
tuple_list = []
for str_ in str_list:
tuple_list.append(tuple(str_.split(link_symbol)))
return tuple_list


def de_duplicate_collect_list(collect_list):
"""
# 去重(不定长)集合列表
:param collect_list:
:return:
"""
unique_lst = frozen_collect_list(collect_list, link_symbol="<-->")
if unique_lst:
unique_lst = list(set(unique_lst))
collect_list = unfrozen_collect_list(unique_lst, link_symbol="<-->")
return collect_list


def cartesian_product_merging(name_list, pass_list):
"""
# 笛卡尔积合并两个列表 结果格式[(a,b),(a,b)] 基于 itertools 生成
:param name_list:
:param pass_list:
:return:
"""
cartesian_product_list = list(itertools.product(name_list, pass_list))

# # 基于循环生成
# cartesian_product_list = []
# for name_ in name_list:
# for pass_ in pass_list:
# cartesian_product_list.append((name_,pass_))

# 去重元组列表结果
# cartesian_product_list = list(set(cartesian_product_list))
cartesian_product_list = de_duplicate_tuple_list(cartesian_product_list)
return cartesian_product_list


def freeze_list_subtract(reduced_tuples, reduce_tuples, link_symbol):
"""
冻结 元组 解冻并相减 (去除已经爆破过的元素 )
:param reduced_tuples:
:param reduce_tuples:
:param link_symbol:
:return:
"""
if reduced_tuples and reduce_tuples:
# 去重 user_name_pass_pair_list 中 被 history_user_pass_tuple_list包含的元素
reduce_tuples = frozen_tuple_list(reduce_tuples, link_symbol=link_symbol)
reduced_tuples = frozen_tuple_list(reduced_tuples, link_symbol=link_symbol)
reduced_tuples = list(set(reduced_tuples) - set(reduce_tuples))
reduced_tuples = unfrozen_tuple_list(reduced_tuples, link_symbol=link_symbol)
return reduced_tuples
86 changes: 1 addition & 85 deletions libs/lib_dyna_rule/dyna_rule_tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,78 +23,6 @@ def list_ele_in_str(list_=None, str_=None, default=False):
return flag


# 冻结(账号-密码)集合列表, 将集合列表转为字符串列表
def frozen_tuple_list(tuple_list, link_symbol="<-->"):
unique_lst = []
for str1, str2 in tuple_list:
unique_lst.append(f"{str1}{link_symbol}{str2}")
return unique_lst


# 解冻(账号-密码)字符串列表, 将字符串列表转为元组列表
def unfrozen_tuple_list(str_list, link_symbol="<-->"):
tuple_list = []
for str_ in str_list:
tuple_list.append(tuple(str_.split(link_symbol, 1)))
return tuple_list


# 去重(账号-密码)元组列表 PS:列表元素如果是元组也可以直接set去重
def de_duplicate_tuple_list(tuple_list):
# 将元组转换为元素不可变的类型,字符串列表
# 然后使用set()函数将其转换为集合,
# 最后再将集合转换回列表即可
# frozenset(tuple) 会导致元组导致无序 # 不能用
unique_lst = frozen_tuple_list(tuple_list, link_symbol="<-->")
if unique_lst:
unique_lst = list(set(unique_lst))
tuple_list = unfrozen_tuple_list(unique_lst, link_symbol="<-->")
return tuple_list


# 冻结(不定长)集合列表, 将集合列表转为字符串列表
def frozen_collect_list(tuple_list, link_symbol="<-->"):
unique_lst = []
for tpl in tuple_list:
unique_lst.append(link_symbol.join(map(str, tpl)))
return unique_lst


# 解冻(不定长)字符串列表, 将字符串列表转为元组列表
def unfrozen_collect_list(str_list, link_symbol="<-->"):
tuple_list = []
for str_ in str_list:
tuple_list.append(tuple(str_.split(link_symbol)))
return tuple_list


# 去重(不定长)集合列表
def de_duplicate_collect_list(collect_list):
unique_lst = frozen_collect_list(collect_list, link_symbol="<-->")
if unique_lst:
unique_lst = list(set(unique_lst))
collect_list = unfrozen_collect_list(unique_lst, link_symbol="<-->")
return collect_list


# 笛卡尔积合并两个列表 结果格式[(a,b),(a,b)]
def cartesian_product_merging(name_list, pass_list):
# 笛卡尔积合并两个列表 结果格式[(a,b),(a,b)]
# 基于 itertools 生成
cartesian_product_list = list(itertools.product(name_list, pass_list))

# # 基于循环生成
# cartesian_product_list = []
# for name_ in name_list:
# for pass_ in pass_list:
# cartesian_product_list.append((name_,pass_))

# 去重元组列表结果
# cartesian_product_list = list(set(cartesian_product_list))
cartesian_product_list = de_duplicate_tuple_list(cartesian_product_list)
return cartesian_product_list


# 对 替换规则字典中的 值列表 进行 动态规则解析
def dict_content_base_rule_render(var_dict):
# 对 替换规则字典中的 值列表 进行 动态规则解析
Expand All @@ -117,18 +45,6 @@ def get_key_list_with_frequency(frequency_dict, frequency_min):
return frequency_list


# 去除已经爆破过的元素
def reduce_str_str_tuple_list(str_str_tuple_list, history_tuple_list, str_link_symbol):
"""去除已经爆破过的元素"""
if str_str_tuple_list and history_tuple_list:
# 去重 user_name_pass_pair_list 中 被 history_user_pass_tuple_list包含的元素
history_tuple_list = frozen_tuple_list(history_tuple_list, link_symbol=str_link_symbol)
str_str_tuple_list = frozen_tuple_list(str_str_tuple_list, link_symbol=str_link_symbol)
str_str_tuple_list = list(set(str_str_tuple_list) - set(history_tuple_list))
str_str_tuple_list = unfrozen_tuple_list(str_str_tuple_list, link_symbol=str_link_symbol)
return str_str_tuple_list


# 将变量列表转换为正则表达式
def list_to_re_str(replace_list, bracket=True):
"""
Expand All @@ -148,4 +64,4 @@ def list_to_re_str(replace_list, bracket=True):
else:
replace_str = f'{regexp}'

return replace_str
return replace_str
3 changes: 2 additions & 1 deletion libs/util_func.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@

import re
from urllib.parse import unquote
from libs.lib_dyna_rule.dyna_rule_tools import list_to_re_str, cartesian_product_merging, frozen_tuple_list
from libs.lib_dyna_rule.dyna_rule_tools import list_to_re_str
from libs.lib_collect_opera.collect_operation import cartesian_product_merging, frozen_tuple_list
from libs.lib_file_operate.file_path import file_is_exist
from libs.lib_file_operate.file_read import read_file_to_list
from libs.lib_log_print.logger_printer import output, LOG_INFO, LOG_ERROR
Expand Down
2 changes: 1 addition & 1 deletion setting_com.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ def init_common(config):
config[GB_RUN_TIME] = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime())
##################################################################
# 版本号配置
config[GB_VERSION] = "Ver 0.5.9 2023-07-09 22:00"
config[GB_VERSION] = "Ver 0.5.10 2023-07-11 06:30"
##################################################################
# 是否显示DEBUG级别信息,默认False
config[GB_DEBUG_FLAG] = False
Expand Down

0 comments on commit 36708d8

Please sign in to comment.