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


Posted in Python onApril 12, 2019

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

排列组合(破解密码)

1.排列

itertools.permutations(iterable,n)

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

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.组合

itertools.combinations(iterable,n)

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

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.排列组合

itertools.product(iterable,repeat=1)

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

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

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

4.疯狂破解密码

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

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程序设计有所帮助。

Python 相关文章推荐
Python实现的几个常用排序算法实例
Jun 16 Python
Windows下实现Python2和Python3两个版共存的方法
Jun 12 Python
在Django中管理Users和Permissions以及Groups的方法
Jul 23 Python
python+opencv实现的简单人脸识别代码示例
Nov 14 Python
python自动发邮件库yagmail的示例代码
Feb 23 Python
python 判断网络连通的实现方法
Apr 22 Python
python统计字母、空格、数字等字符个数的实例
Jun 29 Python
python版本五子棋的实现代码
Dec 11 Python
Python中的asyncio代码详解
Jun 10 Python
Python基于内置库pytesseract实现图片验证码识别功能
Feb 24 Python
PyTorch的torch.cat用法
Jun 28 Python
django 装饰器 检测登录状态操作
Jul 02 Python
Opencv-Python图像透视变换cv2.warpPerspective的示例
Apr 11 #Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
Apr 11 #Python
详解python执行shell脚本创建用户及相关操作
Apr 11 #Python
python中aioysql(异步操作MySQL)的方法
Apr 11 #Python
很酷的python表白工具 你喜欢我吗
Apr 11 #Python
2019 Python最新面试题及答案16道题
Apr 11 #Python
【python】matplotlib动态显示详解
Apr 11 #Python
You might like
PHP下一个非常全面获取图象信息的函数
2008/11/20 PHP
Windows下安装Memcached的步骤说明
2010/04/25 PHP
php对文件夹进行相关操作(遍历、计算大小)
2015/11/04 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
JavaScript版代码高亮
2006/06/26 Javascript
抽出www.templatemonster.com的鼠标悬停加载大图模板的代码
2007/07/11 Javascript
基于jquery的当鼠标滚轮到最底端继续加载新数据思路分享(多用于微博、空间、论坛 )
2011/10/10 Javascript
使用变量动态设置js的属性名
2014/10/19 Javascript
JS button按钮实现submit按钮提交效果
2016/11/01 Javascript
JS条形码(一维码)插件JsBarcode用法详解【编码类型、参数、属性】
2017/04/19 Javascript
利用nvm管理多个版本的node.js与npm详解
2017/11/02 Javascript
javascript填充默认头像方法
2018/02/22 Javascript
webpack dll打包重复问题优化的解决
2018/10/10 Javascript
浅谈TypeScript 用 Webpack/ts-node 运行的配置记录
2019/10/11 Javascript
微信小程序保存图片到相册权限设置
2020/04/09 Javascript
JavaScript如何实现监听键盘输入和鼠标监点击
2020/07/20 Javascript
如何利用JS将手机号中间四位变成*号
2020/09/29 Javascript
vue实现图书管理系统
2020/12/29 Vue.js
Python中的True,False条件判断实例分析
2015/01/12 Python
python在windows下实现ping操作并接收返回信息的方法
2015/03/20 Python
深入讲解Python编程中的字符串
2015/10/14 Python
Django中ORM表的创建和增删改查方法示例
2017/11/15 Python
解决python删除文件的权限错误问题
2018/04/24 Python
python通过配置文件共享全局变量的实例
2019/01/11 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
2019/08/12 Python
Django models filter筛选条件详解
2020/03/16 Python
Ratchet 模态框的实现
2020/08/19 HTML / CSS
英国最大的在线运动补充剂商店:Discount Supplements
2017/06/03 全球购物
铭宣海淘转运:美国、日本、英国转运等全球转运公司
2019/09/10 全球购物
感恩节活动方案
2014/01/27 职场文书
人事文员岗位职责
2014/02/16 职场文书
贯彻学习两会心得体会范文
2014/03/17 职场文书
幼儿园儿童节主持词
2014/03/21 职场文书
幼儿园大班毕业教师寄语
2014/04/03 职场文书
小学生优秀评语大全
2014/04/22 职场文书
班子群众路线教育实践个人对照检查材料思想汇报
2014/09/30 职场文书