Топ 25 паролей от mail.ru


Как то совершенно случайно ко мне попала база паролей от ящиков на mail.ru. Да-да, совершенно случайно, файл со ящикам и паролями от них общим числом около 193-х тысяч. И вот у меня возник вопрос, а какие пароли самые распространенные у пользователей майл ру? Если вам не терпится узнать ответ, то вот, пожалуйста: список из 25-ти самых популярных паролей в mail.ru:

ПозицияПарольСколько раз встречается
1qwerty1731
2123456717
3klaster377
4qwertyuiop271
5qwe123165
6qwerty123138
71qaz2wsx104
81q2w3e4r5t92
9qazwsx77
10qqq11175
11qweqwe72
1212345678970
13zxcvbnm70
141234qwer67
15qwer123466
16123qwe63
171q2w3e4r63
18marina57
19123QWE12356
201q2w3e51
21123456a43
22nikita41
231234541
2412345q41
25qazxsw41

А теперь, если вам все еще интересно, приведу решение этой задачи. Итак, у нас есть файл, в нем 192909 строк. Для решения задачи инициализируем массив в строке 15 - в нем будут храниться пароли. Массив делаем с запасом - на 193 тысячи элементов. В строках 22-34 задаем файл с паролями и считываем его в массив. Формат файла таков - на каждой новой строке связка почта-пароль, разделенная двоеточием. Мы считываем строку, а в массив заносим только вторую часть её - после двоеточия, то есть только пароль. В строке 35 надо бы конечно обработать исключение, но программа только для собственных нужд, так что пропущу.

В строках 37-46 проходим по массиву паролей и заполняем массив, сколько раз встречается пароль. Строка номер 39 - это что-то типа прогресс бара, чтобы понимать, что программа не зависала, а работает нормально - следить за ходом выполнения. В строках 48-61 находим наибольшие 25 значений. В цикле 65-68 записываем в файл пароли, а в цикле 70 выводим результаты на консоль.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.IO;

namespace PassMail
{
    class Program
    {
        static void Main(string[] args)
        {
            int count = 0;
            string[] mass = new string[193000];//массив паролей
            int[] chet = new int[193000];
            string line;
            int max = 0;
            int[] chet_max = new int[25];
            string[] mass_max = new string[25];

        string nameFile = "C:\\Users\\Друг\\Dropbox\\mail.txt";
        try
        {
            using (StreamReader sr = new StreamReader(nameFile))
            {          
                while ((line = sr.ReadLine()) != null)            
                {
                    line = sr.ReadLine();
                    count++;
                    mass[count] = line.Remove(0, line.IndexOf(":", StringComparison.InvariantCulture) + 1);                          
                }
            }
        }
        catch (Exception e) { }

        for (int i = 0; i < count; i++)
        {          
           if (i%10000 == 0 )           Console.WriteLine(i);    
           for (int j = i + 1; j < count; j++)
            {    
                if (mass[i] == mass[j]) {
                    chet[i]++;         
                }                 
            }       
        }

        for (int k = 0; k < 25; k++)
        {
            max = 0;
            for (int i = 0; i < count; i++)
            {
                if (max < chet[i])
                {
                    max = chet[i];
                    chet_max[k] = chet[i];
                    mass_max[k] = mass[i];
                }
            }
            for (int j = 0;  j< count; j++) if (mass_max[k] == mass[j]) chet[j] = 0;
        }

        using (System.IO.StreamWriter file = new System.IO.StreamWriter("C:\\Users\\Друг\\Dropbox\\m.txt", true))
        {
            for (int i = 1; i < 26; i++){
            file.WriteLine("Место: " + i + " Пароль: " + mass_max[i - 1] + " Сколько раз встречается: " + chet_max[i - 1]);
        }
        }
    
        for (int i = 1; i < 26; i++)  Console.WriteLine("Место: "+i+ " Пароль: " + mass_max[i-1] + " Сколько раз встречается: " + chet_max[i-1]);
            Console.ReadKey();
        }
    }
}
Напоследок стоит сказать, что у каждого уважающего себя хакера имеется целая база паролей, так что чтобы не допустить проникновения в свой ящик, используйте не вышеприведенные пароли, а посложнее. Если у вас имеются какие-либо комментарии по данному коду или требуется решить какую либо задачу на C#, то вы можете написать на почту up777up@yandex.ru.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегистатьи IT, си шарп, пароли, mail.ru




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Поля и методы в Java: передача параметров по значению аргумента
Метод reduce в JavaScript
Отключение строгого режима MySQL