首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > C/C++ > 暴力破解密码想到的新算法,用想(有代码)输入的数字如a,b,c对应替代多循环生成的有序的组合如0,1,2利用密码位数,数组的元素不同,排列组合特点
【标  题】:暴力破解密码想到的新算法,用想(有代码)输入的数字如a,b,c对应替代多循环生成的有序的组合如0,1,2利用密码位数,数组的元素不同,排列组合特点
【关键字】:
【来  源】:http://blog.csdn.net/zhazhengbiao/archive/2007/01/18/1486897.aspx

暴力破解密码想到的新算法,用想(有代码)输入的数字如a,b,c对应替代多循环生成的有序的组合如0,1,2利用密码位数,数组的元素不同,排列组合特点

#include <iostream.h>
void main()
{
 int pw[3][3][3];
 int a,b,c;
 cin>>a>>b>>c;
 int i,j,k;

 for(i=0;i<3;i++)
 {
  for(j=0;j<3;j++)
  {
   for(k=0;k<3;k++)
   { 
    
    if(j==0)pw[i][j][k]=k;
    if(j!=0) pw[i][j][k]=10*j+k;
    if(i!=0) pw[i][j][k]=i*100+10*j+k;
    int m,n,l;
    m=(pw[i][j][k]%100)%10;
    n=((pw[i][j][k]-m)/10)%10;
    l=(pw[i][j][k]-10*n-m)/100;
    ////对m,n,l进行分析,用a去换0,b去换1,c去换2,换完后重新合成数字
    switch(m)
    {
    case 0:
     m=a;break;
    case 1:
     m=b;break;
    case 2:
     m=c;break;
    }
    switch(n)
    {
    case 0:
     n=a;break;
    case 1:
     n=b;break;
    case 2:
     n=c;break;
    }
    switch(l)
    {
    case 0:
     l=a;break;
    case 1:
     l=b;break;
    case 2:
     l=c;break;
    }
    pw[i][j][k]=l*100+n*10+m;
    cout<<pw[i][j][k]<<endl;
    
   }
   
  }
  
 }
 
} 简单说下如我看到的别人写的暴力破解密码代码不同之处在于,别人一般采用的是先确定一个位置上的数字,

挑出以后,扔掉后,这样位置就变少了直到为一个位子就结束,举个例子如3位密码,其随机组合有27种,按通常别人

写的是先确定一个位置的数字,枚举完后,剩两个,再挑一个,剩最后一个.我的思路是用0,1,2生成一系列的组合后,

再对数字进行分离,用想输入的任何数字,如a,b,c一一对应替换0,1,2,再重新合成数字.(帖子上有代码)

C++中typename关键字的使用方法和注意事项:【上一篇】
写了点程序:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • GNU交叉工具链(arm-linux-gcc 3.4.4)
  • Hibernate中Oracle保存出现没有反应的情况
  • 11.7. Building Your Own Lisp Library
  • php日期和时间相关函数
  • UindexWeb搜索引擎信息片算法原理
  • Photoshop特效:瓷器龟裂纹理效果
  • SAX解析XML的例子.
  • JDBC驱动下载汇总
  • PE教程6: Import Table(引入表)(1)
  • 继续C++——指针,引用和常量限定符const
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.