Исходник генератора uin;pass

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by VERte][, 15 Aug 2007.

  1. VERte][

    VERte][ Elder - Старейшина

    Joined:
    17 May 2007
    Messages:
    240
    Likes Received:
    163
    Reputations:
    32
    Писал сам, так что не бейте), да и вообще это моя первая более менее полезная программка. Работает в двух режимах: простая генерация по диапозону, и генирирование по маскам xyza, xyz, xy. Написана на С++.
    (PS. Фильтрации нет так как пока это не изучил, и потому что вообщем-то делал для себя). Может кому пригодится (так же начинающим как и я).

    Сообственно код:
    Code:
    //Генератор uin;pass
    #include<iostream>
    #include<fstream>
    #include<cstdlib>
    #include<iomanip>
    using namespace std;
    
    void diapoz(char pass[], int& uin_start, int& uin_fin, ofstream& outs);
    void xyza(char pass[], int& uin_start, int& uin_fin, ofstream& outs);
    void xyz(char pass[], int& uin_start, int& uin_fin, ofstream& outs);
    void xy(char pass[], int& uin_start, int& uin_fin, ofstream& outs);
    void input(char pass[],int& uin_start, int& uin_fin);
    
    int main()
    {
        int uin_start, uin_fin, select1, select2;
        char pass[9], select;
        ofstream outs;
    
        //Открываем файл
        outs.open("list.txt");
    
        if (outs.fail())
        {
            cout<<"Output file opening failed.";
            exit(1);
        }
        //Закрываем файл
        outs.close();
    
    
        //Выбор метода генерирования
        cout<<"Select generic type:"<<endl;
        cout<<":::1)Range of uins"<<endl<<":::2)Masks (xyza, xyz, xy)"<<endl<<">";
        cin>>select1;
    
        switch (select1)
        {
            case 1:
            {
                input(pass, uin_start, uin_fin);
                diapoz(pass, uin_start, uin_fin, outs);
                break;
            }
            case 2:
            {
                cout<<setw(8)<<"1)xyza"<<endl<<setw(7)<<"2)xyz"<<endl<<setw(6)<<"3)xy"<<endl<<">";
                cin>>select2;
    
                if (select2==1)
                {
                    input(pass, uin_start, uin_fin);
                    xyza(pass, uin_start, uin_fin, outs);
                }
                if (select2==2)
                {
                    input(pass, uin_start, uin_fin);
                    xyz(pass, uin_start, uin_fin, outs);
                }
    
                if (select2==3)
                {
                    input(pass, uin_start, uin_fin);
                    xy(pass, uin_start, uin_fin, outs);
                }
                break;
            }
        }
    return (0);
    }
    
    //Ввод данных
    void input(char pass[], int& uin_start, int& uin_fin)
    {
        cout<<"Input password: ";
        cin>>pass;
        cout<<"Input first uin: ";
        cin>>uin_start;
        cout<<"Input last uin: ";
        cin>>uin_fin;
    }
    
    //Генерирование по диапазону
    void diapoz(char pass[], int& uin_start, int& uin_fin, ofstream& outs)
    {
        outs.open("list.txt");
        if (outs.fail())
        {
            cout<<"Output file opening failed.";
            exit(1);
        }
        do
          {
            outs<<uin_start<<";"<<pass<<endl;
            uin_start++;
          } while (uin_start<=uin_fin);
       outs.close();
    }
    
    //Генерирование по маске xyza
    void xyza(char pass[], int& uin_start, int& uin_fin, ofstream& outs)
    {
    
    int count(0), i, uin[10]={0,0,0,0,0,0,0,0,0,0} , numb, delit(100000000);
    
        outs.open("list.txt");
        if (outs.fail())
        {
            cout<<"Output file opening failed.";
            exit(1);
        }
    
        for (uin_start; uin_start<=uin_fin ;uin_start++)
        {
           while(delit>=10)
            {
                numb=uin_start/delit;
                delit/=10;
                if (numb>0)
                {
                    uin[numb]++;
                    break;
                }
            }
    
            while(delit>=1)
            {
               numb=(uin_start/delit)%10;
               delit/=10;
               uin[numb]++;
            }
    
            for (i=0; i<10; i++)
            {
                if (uin[i]>0)
                count++;
            }
    
            if ((count==4)||(count==3)||(count==2) || (count==1))
            {
               outs<<uin_start<<";"<<pass<<endl;
            }
    
            count=0;
            delit=100000000;
            for (i=0; i<10; i++)
            {
               uin[i]=0;
            }
        }
     outs.close();
    }
    
    //Генерирование по маске xyz
    void xyz(char pass[], int& uin_start, int& uin_fin, ofstream& outs)
    {
    
    int count(0), i, uin[10]={0,0,0,0,0,0,0,0,0,0} , numb, delit(100000000);
    
        outs.open("list.txt");
        if (outs.fail())
        {
            cout<<"Output file opening failed.";
            exit(1);
        }
    
        for (uin_start; uin_start<=uin_fin ;uin_start++)
        {
           while(delit>=10)
            {
                numb=uin_start/delit;
                delit/=10;
                if (numb>0)
                {
                    uin[numb]++;
                    break;
                }
            }
    
            while(delit>=1)
            {
               numb=(uin_start/delit)%10;
               delit/=10;
               uin[numb]++;
            }
    
            for (i=0; i<10; i++)
            {
                if (uin[i]>0)
                count++;
            }
    
            if ((count==3)||(count==2) || (count==1))
            {
               outs<<uin_start<<";"<<pass<<endl;
            }
    
            count=0;
            delit=100000000;
            for (i=0; i<10; i++)
            {
               uin[i]=0;
            }
        }
     outs.close();
    }
    
    //Генерирование по маске ху
    void xy(char pass[], int& uin_start, int& uin_fin, ofstream& outs)
    {
    int count(0), i, uin[10]={0,0,0,0,0,0,0,0,0,0} , numb, delit(100000000);
        outs.open("list.txt", ios::app);
        if (outs.fail())
        {
            cout<<"Output file opening failed.";
            exit(1);
        }
    
         for (uin_start; uin_start<=uin_fin ;uin_start++)
        {
           while(delit>=10)
            {
                numb=uin_start/delit;
                delit/=10;
                if (numb>0)
                {
                    uin[numb]++;
                    break;
                }
            }
    
            while(delit>=1)
            {
               numb=(uin_start/delit)%10;
               delit/=10;
               uin[numb]++;
            }
    
            for (i=0; i<10; i++)
            {
                if (uin[i]>0)
                count++;
            }
    
            if ((count==2) || (count==1))
            {
               outs<<uin_start<<";"<<pass<<endl;
            }
    
            count=0;
            delit=100000000;
            for (i=0; i<10; i++)
            {
               uin[i]=0;
            }
        }
    outs.close();
    }
    Сама программка: http://stream.ifolder.ru/3017783
    PS. Огромное спаcибо AdvLamer'y за советы и помощь в отладке.
     
    #1 VERte][, 15 Aug 2007
    Last edited: 16 Aug 2007
    5 people like this.
  2. biophreak

    biophreak Elder - Старейшина

    Joined:
    3 Aug 2007
    Messages:
    348
    Likes Received:
    63
    Reputations:
    15
    Извини конечно, но зачем на сях, тем более на плюсах писать простой генератор?
    Имхо быстрее, удобнее и , тем более, кросс-платформеннее ;) будет написать его на перле или питоне....
     
  3. VERte][

    VERte][ Elder - Старейшина

    Joined:
    17 May 2007
    Messages:
    240
    Likes Received:
    163
    Reputations:
    32
    Если тебе надо - пожалуйста пиши и выкладывай, тебе будут благодарны) Я кроме бэйсика изучаемого в школе, и с++ изучаемого самостоятельно ничего не знаю, если бы знал и это было удобнее то конечно бы написал...
     
    #3 VERte][, 16 Aug 2007
    Last edited: 16 Aug 2007
    1 person likes this.
  4. Lesnoy_chelovek

    Lesnoy_chelovek Elder - Старейшина

    Joined:
    6 Dec 2006
    Messages:
    224
    Likes Received:
    152
    Reputations:
    8
    Vertexe, могу дать следующие ломашнее задание. Гненратор вида логин;пароль, здесь будет посложнее. Я серьезно.
     
    2 people like this.
  5. VERte][

    VERte][ Elder - Старейшина

    Joined:
    17 May 2007
    Messages:
    240
    Likes Received:
    163
    Reputations:
    32
    В смысле??? а что меняется? к одному логину несколько паролей из файла?
     
    1 person likes this.
  6. Lesnoy_chelovek

    Lesnoy_chelovek Elder - Старейшина

    Joined:
    6 Dec 2006
    Messages:
    224
    Likes Received:
    152
    Reputations:
    8
    Просто набор вида:
    Code:
    aaa:pass
    aab:pass
    aac:pass
    и так далее.
    Но вот так что бы длина логина хотя бы до 32. Смогешь?
     
    1 person likes this.
  7. VERte][

    VERte][ Elder - Старейшина

    Joined:
    17 May 2007
    Messages:
    240
    Likes Received:
    163
    Reputations:
    32
    хех, а символы в логине любые или только буквы?
    Вообщем уточни полностью задание со всеми нюансами, и я за него сразу приймусь, как изучу некоторые методы работы с массивами и как работать со строковыми данными.
     
    #7 VERte][, 16 Aug 2007
    Last edited: 16 Aug 2007
  8. Lesnoy_chelovek

    Lesnoy_chelovek Elder - Старейшина

    Joined:
    6 Dec 2006
    Messages:
    224
    Likes Received:
    152
    Reputations:
    8
    ну, пусть будут любые :)