Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Скрипт для формирования статистики |

03.02.2007, 07:40
|
|
Постоянный
Регистрация: 06.12.2006
Сообщений: 762
Провел на форуме: 5352530
Репутация:
2062
|
|
Скрипт для формирования статистики
Привет, сейчас самому некогда делать, да и сделаю я коряво, так что лучше попрошу помощи здесь.
Есть тема - https://forum.antichat.ru/thread32492.html
В ней есть данные хеш и пароль. Вообще есть данные в текстовом файле, разделены табуляцией. Для темы надо составить статистику. Нужно
1) Количество паролей (общее)
2) Количество паролей с цифрами
3) Количество паролей с спецзнаками
4) Количество паролей с заглавными буквами
5) Количество паролей длины n
6) Количество паролей на кирилице
7) Количество паролей состоящих только из букв
8) Количесвто паролей только из цифр
и подобное. Вообще, скрипт могу написать сам, но если укажите какие функции лучше использовать для поставленных заданий, то сэкономите мне время. Ну если кому не сложно написать и сам скриптик, я только за 
|
|
|

03.02.2007, 08:34
|
|
Постоянный
Регистрация: 14.05.2006
Сообщений: 334
Провел на форуме: 1543521
Репутация:
272
|
|
Короче привожу названия функций и краткое описание:
1) $f=file('dict.txt'); echo count($f); //выведет количество строк в твоем файле
Короче вот код с коментариями
Код:
<?php
function GetPass($str) //$str - Элемент массива $f из предыдущего примера
{
$n=strpos($str,"\t"); //Получаем номер символа табуляции в строке
$str=substr($str,$n+1); //Вырезаем пароль из строки
$str=str_replace("\r\n","",$str);
$str=str_replace("\n","",$str);
$str=str_replace("\r","",$str);
return $str;
}
function IsNumberInPass($pass) //Ищет есть ли цифры в пароле
{
if(strpos($pass,"0")!=false)return true;
if(strpos($pass,"1")!=false)return true;
if(strpos($pass,"2")!=false)return true;
if(strpos($pass,"3")!=false)return true;
if(strpos($pass,"4")!=false)return true;
if(strpos($pass,"5")!=false)return true;
if(strpos($pass,"6")!=false)return true;
if(strpos($pass,"7")!=false)return true;
if(strpos($pass,"8")!=false)return true;
if(strpos($pass,"9")!=false)return true;
return false;
}
function IsSpecInPass($pass) //Ищет есть ли спец знаки в пароле в пароле - !!!!добавь спец знаки, которые еще нужны!!!!
{
if(strpos($pass,"<")!=false)return true;
if(strpos($pass,">")!=false)return true;
if(strpos($pass,"'")!=false)return true;
if(strpos($pass,"!")!=false)return true;
if(strpos($pass,"@")!=false)return true;
if(strpos($pass,"%")!=false)return true;
if(strpos($pass,".")!=false)return true;
if(strpos($pass,",")!=false)return true;
if(strpos($pass,"\"")!=false)return true;
if(strpos($pass,"/")!=false)return true;
return false;
}
function IsBigInPass($pass) //Ищет есть ли большие буквы в пароле - !!!!добавь остальные буквы!!!!
{
if(strpos($pass,"A")!=false)return true;
if(strpos($pass,"B")!=false)return true;
if(strpos($pass,"C")!=false)return true;
if(strpos($pass,"D")!=false)return true;
if(strpos($pass,"E")!=false)return true;
if(strpos($pass,"F")!=false)return true;
if(strpos($pass,"G")!=false)return true;
if(strpos($pass,"H")!=false)return true;
if(strpos($pass,"I")!=false)return true;
if(strpos($pass,"G")!=false)return true;
return false;
}
function GetPassWithNomber() //Вернет количество паролей с цифрами
{
$x=0;
$f=file('dict.txt');
for($i=0;$i<count($f);$i++)
{
$f[$i]=GetPass($f[$i]);
if(IsNumberInPass($f[$i]))$x++;
}
return $x;
}
function GetPassWithSpecSymb() //Вернет количество паролей со спец знаками
{
$x=0;
$f=file('dict.txt');
for($i=0;$i<count($f);$i++)
{
$f[$i]=GetPass($f[$i]);
if(IsSpecInPass($f[$i]))$x++;
}
return $x;
}
function GetPassWithBig() //Вернет количество паролей с большими буквами
{
$x=0;
$f=file('dict.txt');
for($i=0;$i<count($f);$i++)
{
$f[$i]=GetPass($f[$i]);
if(IsBigInPass($f[$i]))$x++;
}
return $x;
}
function GetPassWithLength($length) //Вернет количество паролей длины $length
{
$x=0;
$f=file('dict.txt');
for($i=0;$i<count($f);$i++)
{
$f[$i]=GetPass($f[$i]);
if(strlen($f[$i])==$length)$x++;
}
return $x;
}
?>
Мля, ну дальше писать я думаю нету смысла. Все остальное типовое! То же самое, только символы в функциях меняй и давай им другое имя. И все.
Гарантий того, что это работает не даю. Не проверял. Но тут вроде все просто, думаю должно быть без ошибок. Если будут проблемы пиши сюда. Тебе осталось, только вставить эти функции в нужные тебе места  )
Последний раз редактировалось je0n; 03.02.2007 в 09:06..
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|