python3 md5,Pythonmd5

  python3 md5,Pythonmd5

  这篇文章主要介绍了基于大蟒的讯息摘要5脚本,通过线模块自动生成字典,使用排列()函数,对字典进行全排列,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下

  

目录
开发思路讯息摘要5碰撞函数主函数完整代码脚本

  

开发思路

  1、通过线模块自动生成字典;

  2、使用排列()函数,对字典进行全排列;

  3、使用讯息摘要5模块对全排列的字典进行转换;

  4、使用了多线程,分别对5~18位字符串进行讯息摘要5碰撞,以防止时间太长(虽然现在也要很久)。

  

md5碰撞函数

  def md5_poj(self,md5_value,k):

  if len(md5_value)!=32:

  打印("错误")

  返回

  md5_value=md5_value.lower()

  #排列()全排列

  对于排列中项目(所有字母,k):

  项目=""。连接(项目)

  if item==hongrisec@2019:

  打印(项目)

  if md5(item.encode()).hexdigest()==md5_value:

  打印( \n success: md5_value ==项)

  自我. mdfive=1

  其中if len(md5_value)!=32 判断所输入的讯息摘要5是否为32位的

  

主函数

  定义主(自身):

  NT_md5=input(请填写MD5:")

  开始时间=时间()

  t_list=[]

  打印(正在查询.)

  # 添加线程

  t_first=线程. Thread(target=self.md5_first,args=(NT_md5,)

  t_first.daemon=1

  t_first.start()

  对于范围(5,18):中的k

  t=进程(target=self.md5_poj,args=(NT_md5,k))

  # t=线程Thread(target=self.md5_poj,args=(NT_md5,k))

  t.daemon=1 #守护程序

  t_list.append

  # 启动所有线程

  对于t_list:中的我

  i.start()

  # 当__mdfive==1时结束所有线程

  而1:

  如果自我. mdfive:

  破裂

  打印( \n查询结束!)

  打印(使用了%f秒%(time() - start_time))

  

完整代码脚本

  导入线程

  从多重处理导入流程

  从摘要算法导入讯息摘要5

  从循环器导入排列

  从字符串导入ascii _字母,数字,ascii _小写,ascii _大写

  从时间导入时间

  all_letters=ascii_lowercase 。@ 数字

  MDfive:类

  def __init__(self):

  自我. mdfive=0

  def md5_poj(self,md5_value,k):

  if len(md5_value)!=32:

  打印("错误")

  返回

  md5_value=md5_value.lower()

  #排列()全排列

  对于排列中项目(所有字母,k):

  项目=""。连接(项目)

  if item==hongrisec@2019:

  打印(项目)

  if md5(item.encode()).hexdigest()==md5_value:

  打印( \n success: md5_value ==项)

  自我. mdfive=1

  # 判断讯息摘要5是否与空匹配

  def md5_first(self,md5_firstvalue):

  if len(md5_firstvalue)!=32:

  elif MD5 _ first value== 31 D6 cf E0 d 16 AE 931 b 73 c 59d 7 E0 c 089 c 0 :

  打印( \n密码为空!)

  自我. mdfive=1

  定义主(自身):

  NT_md5=input(请输入MD5:")

  开始时间=时间()

  t_list=[]

  打印(正在查询.)

  # 添加线程

  t_first=线程. Thread(target=self.md5_first,args=(NT_md5,)

  t_first.daemon=1

  t_first.start()

  对于范围(5,18):中的k

  t=进程(target=self.md5_poj,args=(NT_md5,k))

  # t=线程Thread(target=self.md5_poj,args=(NT_md5,k))

  t.daemon=1 #守护程序

  t_list.append

  # 启动所有线程

  对于t_list:中的我

  i.start()

  # 当__mdfive==1时结束所有线程

  而1:

  如果自我. mdfive:

  破裂

  打印( \ n查询结束!)

  Print(耗时%f秒 %(time()-start_time))

  if __name__==__main__:

  MDfive()。主()

  这就是这篇关于基于python的MD5脚本的文章。关于pythonMD5脚本的更多信息,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望你以后能支持风行IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: