gpt4 book ai didi

Python实现的排列组合、破解密码算法示例

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Python实现的排列组合、破解密码算法示例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文实例讲述了python实现的排列组合、破解密码算法。分享给大家供大家参考,具体如下:

排列组合(破解密码) 。

1.排列 。

?
1
itertools.permutations(iterable,n)

参数一:要排列的序列, 参数二:要选取的个数 返回的是一个迭代对象,迭代器中的每一个元素都是一个元组 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import itertools
#概念:从n个不同元素中取出m(m≤n)个元素,按照一定的顺序排成一列,叫做从n个元素中取出m个元素的一个排列(arrangement)。特别地,当m=n时,这个排列被称作全排列(permutation)
'''
1 2 3 4
假设从中取出3个数字
123
132
213
231
321
312
'''
#需求:从[1,2,3,4]4个数中随机取出3个数进行排列
mylist = list (itertools.permutations([ 1 , 2 , 3 , 4 ], 3 ))
print (mylist)
print ( len (mylist))
'''
规律总结:
4 - 3  24
4 - 2  12
4 - 1  4
排列的可能性次数:n! / (n-m)!
'''

2.组合 。

?
1
itertools.combinations(iterable,n)

参数一:可迭代对象 参数二:要选取的个数 返回值:返回一二迭代器,迭代器中的每一个元素都是一个元组 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import itertools
#概念:从m个不同的元素中,任取n(n≤m)个元素为一组,叫作从m个不同元素中取出n个元素的进行组合
'''
1 2 3 4 5 中选4个数的组合方式有几种?
'''
mylist = list (itertools.combinations([ 1 , 2 , 3 , 4 , 5 ], 4 ))
print (mylist)
print ( len (mylist))
'''
规律总结:
m  n
5 - 5  1
5 - 4  5
5 - 3  10
5 - 2  10
5!
120/120(m-n)!
120/24(m-n)!
120/6(m-n)!
m!/(n!x(m-n)!)
'''

3.排列组合 。

?
1
itertools.product(iterable,repeat = 1 )

参数一:可迭代对象,参数二:重复的次数,默认为1 。

?
1
2
3
4
5
6
7
8
9
import itertools
'''
_ _ _ _ _
'''
mylist = list (itertools.product( "0123456789qwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnm" , repeat = 6 ))
#可以尝试10,有可能电脑会卡住
#多线程也不行,电脑内存不够,咋处理都白搭
#print(mylist)
print ( len (mylist))

扩展:现在但凡涉及到密码,一般都会进行加密处理,常用的加密方式有md5,rsa,des等 。

4.疯狂破解密码 。

伤敌一千自损一万的破解方式 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import time
import itertools
#mylist = list(itertools.product("0123456789", repeat=10))
passwd = (" ".join(x) for x in itertools.product(" 0123456789qwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnm ", repeat = 6 ))
#print(mylist)
#print(len(mylist))
while true:
   #先直接实现,然后再添加异常
   try :
     str = next (passwd)
     time.sleep( 0.5 )
     print ( str )
   except stopiteration as e:
     break

希望本文所述对大家python程序设计有所帮助.

原文链接:https://blog.csdn.net/lm_is_dc/article/details/80174742 。

最后此篇关于Python实现的排列组合、破解密码算法示例的文章就讲到这里了,如果你想了解更多关于Python实现的排列组合、破解密码算法示例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com