黑客字典(c#源码)

来源:互联网 发布:人工智能 公共交通 编辑:程序博客网 时间:2024/05/07 01:51
 

    经常听到人说暴力破解,就是例如abc三个字母可以组成acb,bca,cab,cba,等等等等,然后一个一个的去试密码。
    所以一些秘密安全策略,最少七位数,不能是纯数字,或者纯字母,或者加些特殊字符之类的。其实七个纯字母就够了,暴力破解七个纯小写字母的概率是80亿分之一。你觉得加上数字,特殊字符,大写字母。虽然说理论上是可以破解出来的。但是依照你个人电脑,就算破解你本地的SAM密码,以每秒两千万的速度。我想那也得几天。更别说远程破解什么,每秒五百次到高兴死了。
    我一点也不欣赏暴力破解,没点技术。不过也没啥漏洞可用的话,我觉得还是用点社会工程学,就是看看啥产品,查查默认密码,机主姓名,冒充一下某某人之类打个电话等等的。
     记得世界头号黑客,凯文米特尼克出狱以后就写了一本书,没写一点技术,写的就是社会工程学。书叫《欺骗的艺术》,凯文说一个系统最弱的地方不是机器,而是人。我也是菜鸟,在这就不吹了。
      对了,现在不是说你把密码改的复杂,你密码就安全,现在很少有人暴力破解QQ了。经常在黑基网站上面看到有人免费送QQ,这是哪位黑客盗的一大堆QQ,也没啥价值,就放到网上。不过听说是入侵了某大型路由器,监听出来的。那也是破了QQ密码也是加密传输啊。估计是弄的木马吧。

 

 

//也没啥事,把这垃圾发上来。能看的也就是学c#的,可以自己改改。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace 字典
{
    class Program
    {
        static void Main(string[] args)
        {
            startWrite("");

        }

        //这是一个字符数组,二十六个字母不是随便排列的,是根据那个字母最常用,排在最前面,提高提前破解出的时间
        static char[] chars = new char[]{ 'e', 'a', 't', 'o', 'i', 'n', 'h','s', 'r', 'd', 'l','u', 'c',
                                'm','f', 'g', 'w', 'p', 'b', 'y', 'v', 'k', 'q', 'x', 'j', 'z' };
        //因为下面的方法是递归调用,所以要把这个StreamWriter 写到方法外边,字典保存到当前目录下
       static  StreamWriter sw = new StreamWriter("字典.dic");
       
        /// <summary>
        /// 传进来一个字符串,然后在这个字符串后面加上不同的字符,然后保存到硬盘,继续递归调用
        /// </summary>
        /// <param name="s">传进来的字符串</param>
        public static void startWrite(string s)
        {
            //传进来一个字符串,会根据二十六个字母,生成一个字符串数组
            string[] str = new string[26];
            //依次初始化字符串数组
            for (int i = 0; i < 26; i++)
            {
                //将字符追加到字符串中
                str[i] += s + chars[i];
                //写一行到文件中
                sw.WriteLine(str[i]);
            }
           
            //刷新缓存,把数据写入硬盘
            sw.Flush();

            //根据字符串长度,判断是否继续递归调用,默认是破解4位数一下的。4位就得两兆,五位得八十兆。哇,这是个Bug,你硬盘够吗,而且如果位数多了的话,照我这写法,堆栈可能会蹦的。
            if (str[1].Length == 4 )
                return;
            //依次递归
            for (int i = 0; i < 26; i++)
            {
                startWrite(str[i]);
            }

        }
    }

 

原创粉丝点击