跑包区字典制作赛第二季
本帖最后由 viviczh 于 2016-4-25 12:47 编辑一、目的 适度跑包益脑 沉迷跑包伤机 不如制作字典 怡情怡性益身
二、内容 制作1~8位纯数字密码,要求格式为“连续滚键盘式”,例如:56587458、85474123、96541478,键盘样式以手机键盘为准(见图),滚键盘可沿键盘横向、纵向滚动,不斜向滚动,不连续按同一键两次。
三、注意 1、字典的通用性和密码概率均不讨论
2、成果文件无需上传,截图即可,但需详细说明制作的软件及方法
四、奖励 相信方法多种多样,按照正确性和简便性给予论坛金币奖励
4月25日,结贴。虽然字典制作是那么的枯燥,各位还是一如既往地支持,感谢各位!骇客帝国、shuangyeying、随风飘得到论坛金币奖励,希望各位能再接再厉。
本帖最后由 骇客帝国 于 2016-4-3 16:44 编辑
不知道楼主要求是不是含8位以下的,我就按楼主给出的键盘图案制作一个纯8位的。
如果要含8位以下的,(逐一替换法的话)那就分批制作,比如制作7位的,就先制作一个纯7位的字典,之后方法相同!!
(运用正则式批量替换法的话)就先直接制作一个含8位以下的1-8位数字字典,之后方法相同!!
【方法及步骤】
一、制作一个8位纯数字字典(方法略)
二、【逐一替换法】用UE打开后查找替换下列字符(均为键盘不相邻字符及重复按键)
<注:以版主给出的键盘图案列出>
00、11、22、33、44、55、66、77、88、99
01、02、03、04、05、06、07、09
13、15、16、17、18、19、10
24、26、27、28、29、20
31、34、35、37、38、39、30
42、43、46、48、49、40
51、53、57、59、50
61、62、64、67、68、60
71、72、73、75、76、79、70
81、82、83、84、86
91、92、93、94、95、97、90
用UE逐一查找替换时,只在查找中逐一填以上字符、替换栏不填,然后替换,最后去掉8位以下(方法略);
三、【批量替换法】用UE正则式批量替换含有以上字符的行为空行
正则式为:(引擎选择Perl)
^.*(00|11|22|33|44|55|66|77|88|99|01|02|03|04|05|06|07|09|13|15|16|17|18|19|10|24|26|27|28|29|20|31|34|35|37|38|39|30|42|43|46|48|49|40|51|53|57|59|50|61|62|64|67|68|60|71|72|73|75|76|79|70|81|82|83|84|86|91|92|93|94|95|97|90).*$
如图:
1、设置替换成空行(注意红圈内的选择及输入)
2、出现提示框直接按确定,之后机器可能会有假死现象,需耐心等待 (视电脑CPU及内存配置情况,顺便说一下本人破电脑是酷睿2四核4G内存, 等待时间10分钟左右)
(注:要想知道是否是假死,可打开任务管理器查看UE进程,如果UE进程的内存使用在不断增加,说明其在正常运行,如果内存使用不动了说明UE真卡死了,可关闭UE,再打开时软件会提示恢复,点击恢复,再继续原来的操作)
3、替换后的结果:
三、最后删除空行后另存即可。
正则式为:(引擎选择UltraEdit)
%[ ^t]++^p
1、设置删除空行(注意红圈内的选择及输入)
2、耐心等待结果:
共获得14826条数据
验证一下楼主列出的3个数字
字典附后:制作比较仓促,也未经全面验证!!
我是截3'4'5数来搞的但就是出来后容量大的不理想:Q 所以进来看看学习一下大家有什么好方法 大神都不在?还是我奖励设置的不够高?:L 我去百度一下 连续滚键盘式 哈哈;P 好像明白一点了,我看看啦。 好像数字的没什么用,起码我跑了这么多的包 利用回溯算法尝试优先遍历,先计算出所有四个数字的所有排列组合,然后从中剃除穿过中间那个数字及连续重复2数字的组合,剩下的既为符合要求的组合 zjhxmjl 发表于 2016-3-31 23:46
利用回溯算法尝试优先遍历,先计算出所有四个数字的所有排列组合,然后从中剃除穿过中间那个数字及连续重复 ...
有点意思哦。1~8位的,不单单是8位的。我用笨办法昨天做了一个1~10位的,居然才2M多,算弱密也不为过。 本帖最后由 shuangyeying 于 2016-4-1 23:06 编辑
网慢,一下回了就出两个,这个编辑掉好了。 本帖最后由 shuangyeying 于 2016-4-1 23:09 编辑
先用C找出0-9相邻的数字有哪些。相邻的数相差1或者3或者8,可以设定条件找到。
然后将这些相邻的数定义成一个数组。再做一个嵌套循环,就能够出来啦。
当然,除了0和8相邻,定义数组的其他为0的要筛选掉。
shuangyeying 发表于 2016-4-1 23:02
先用C找出0-9相邻的数字有哪些。相邻的数相差1或者3或者8,可以设定条件找到。
然后将这些相邻的 ...
果然气派,本人C渣渣,第二部分表示看的不是很懂,相邻数做成数组是不是只有双位数?