ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > PHP, PERL, MySQL, JavaScript
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #951  
Старый 23.02.2009, 03:14
[dei]
Участник форума
Регистрация: 24.11.2008
Сообщений: 205
Провел на форуме:
1123418

Репутация: 362
Отправить сообщение для [dei] с помощью ICQ
По умолчанию

Nightmarе
пробелы только сотри форумные

Код:
#/usr/bin/perl -w
use Mcrypt qw(:ALGORITHMS :MODES);
use MIME::Base64;

$key = "E4HD9h4DhS23DYfhHemkS3Nf";# 24 bit Key
$iv = "fYfhHeDm";# 8 bit IV
$input = "Text to encrypt";# text to encrypt
$bit_check=8;# bit amount for diff algor.

$str= encrypt($input,$key,$iv,$bit_check);
print "Start: $input - Excrypted: $str - Decrypted: ".decrypt($str,$key,$iv,$bit_check);

sub encrypt( $$$$ ) {
my ($text,$key,$iv,$bit_check) = @_;
my @text_num = str_split($text,$bit_check);
$text_num = $bit_check-length($text_num[scalar($text_num)-1]);
for(my $i=0;$i<$text_num; $i++) { $text = $text . chr($text_num);}
my $cipher = Mcrypt::mcrypt_load(Mcrypt::3DES,'',Mcrypt::CBC,'');
Mcrypt::mcrypt_init($cipher, $key, $iv);
my $decrypted = Mcrypt::mcrypt_encrypt($cipher,$text);
Mcrypt::mcrypt_end($cipher);
return encode_base64($decrypted,'');
}

sub decrypt( $$$$ ) {
my ($encrypted_text,$key,$iv,$bit_check) = @_;
my $cipher = Mcrypt::mcrypt_load(Mcrypt::3DES,'',Mcrypt::CBC,'');
Mcrypt::mcrypt_init($cipher, $key, $iv);
my $decrypted = Mcrypt::mcrypt_decrypt($cipher,decode_base64($encrypted_text));
Mcrypt::mcrypt_end($cipher);
my $last_char=substr($decrypted,-1);
for(my $i=0;$i<$bit_check-1; $i++){
    if($i==ord($last_char)){
        
        
        
        $decrypted=substr($decrypted,0,length($decrypted)-$i);
        last;
    }
}
return $decrypted;
}

sub str_split( $$ ) {
    my ($text,$split) = @_;
    if($split<1) { $split = 1; }
    my @array = ();

    for (my $i = 0; $i < length($text); $i += $split) {
        push @array, substr($text, $i, $split);
    }

    return @array;
}

Последний раз редактировалось [dei]; 23.02.2009 в 17:06..
 

  #952  
Старый 23.02.2009, 13:03
Kaimi
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме:
18127311

Репутация: 1676


Отправить сообщение для Kaimi с помощью ICQ
По умолчанию

[dei]
Проверял идентичность результата работы?
 

  #953  
Старый 23.02.2009, 17:07
[dei]
Участник форума
Регистрация: 24.11.2008
Сообщений: 205
Провел на форуме:
1123418

Репутация: 362
Отправить сообщение для [dei] с помощью ICQ
По умолчанию

Kaimi
идентично
 

  #954  
Старый 24.02.2009, 01:13
roddik
Познающий
Регистрация: 14.01.2009
Сообщений: 93
Провел на форуме:
244235

Репутация: 39
Cool

Цитата:
Сообщение от $p01nt  
Ребят, привет всем!
У меня такой вопрос, пытаюсь авторизироваться на сайте отправив методом POST логин и пароль, ничего не получается (хотя на некоторых других - все ОК!). Собсно ошибка:...
вот рабочий код. механайз рулз

Код:
use strict;
use WWW::Mechanize;

my $mech = WWW::Mechanize->new();
$mech->agent_alias('Windows IE 6');

$mech->get('https://www.google.com/accounts/ServiceLoginAuth?service=mail');
$mech->submit_form(form_number => 1, fields => {Email => 'логин', Passwd => 'пасс', PersistentCookie => 'yes'});

my ($loc) = $mech->content() =~ /location\.replace\("(.+)"\)/;

$mech->get($loc);

print $mech->content();
твой код не смотрел почему не работает, но в любом случае ты неправильно куки сохраняешь, почитай доки по этому поводу

Код:
my $jar = HTTP::Cookies->new(file => "cookie.txt", autosave => 1, ignore_discard => 1, hide_cookie2 => 1);
 

  #955  
Старый 24.02.2009, 01:28
Kaimi
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме:
18127311

Репутация: 1676


Отправить сообщение для Kaimi с помощью ICQ
По умолчанию

Цитата:
вот рабочий код. механайз рулз
Дай пример рабочего кода получающего содержимое страницы почты в гмейле
 

  #956  
Старый 24.02.2009, 15:55
roddik
Познающий
Регистрация: 14.01.2009
Сообщений: 93
Провел на форуме:
244235

Репутация: 39
По умолчанию

Цитата:
Сообщение от Kaimi  
Дай пример рабочего кода получающего содержимое страницы почты в гмейле
Может лучше ее по попу скачать?
 

  #957  
Старый 02.03.2009, 10:54
S0ulVortex
Участник форума
Регистрация: 18.11.2007
Сообщений: 184
Провел на форуме:
1686744

Репутация: 246
Отправить сообщение для S0ulVortex с помощью ICQ
По умолчанию

Вобщем решил попробывать изучить perl
В учебнике есть задания по проделанным урокам вот запнулся на 1 из них.
Код:
#!/usr/bin/perl -w

$im_thinking_of=int(rand 10);
print "Введите часло от 0 до 9:";
$guess=<STDIN>;
chomp $guess;
	
	if ($guess>$im_thinking_of) {
		print "perebor!\п";
} elsif ($guess < $im_thinking_of) {
	print "NEDABOR!\п";
} else {
	print "You win";
}
нужно кароче сделать чтобы цикл повторялся пока не будет правильного ответа. все из тыркал че-то не догоню как


Код:
#!/usr/bin/perl -w

$im_thinking_of=int(rand 10);
print "Введите часло от 0 до 9:";
$guess=<STDIN>;
chomp $guess;

while ($guess) {
	if ($guess>$im_thinking_of) {
		print "perebor!\п";
} elsif ($guess < $im_thinking_of) {
	print "NEDABOR!\п";
} else {
	print "You win"; }
}
че-то такое пробую писать но он кароче повторяет ответ до бесконечности. Еси можно ещё поеснить немного. Сразу говарю учеюник скачал 3 часа назад где-то так что нуб полный. Пока несовсем понимаю что я делаю.

Последний раз редактировалось S0ulVortex; 02.03.2009 в 10:58..
 

  #958  
Старый 02.03.2009, 11:31
demond
Участник форума
Регистрация: 05.11.2008
Сообщений: 105
Провел на форуме:
292722

Репутация: 71
По умолчанию

S0ulVortex, тебе просто надо сделать выход, в случае, если ответ правильный. Это можно сделать несколькими способами:
1) поставить exit если ответ правильный
2) поставить next если ответ правильный
3) в условие цикла добавить проверки правильного ответа
 

  #959  
Старый 02.03.2009, 13:44
S0ulVortex
Участник форума
Регистрация: 18.11.2007
Сообщений: 184
Провел на форуме:
1686744

Репутация: 246
Отправить сообщение для S0ulVortex с помощью ICQ
По умолчанию

Цитата:
Сообщение от demond  
S0ulVortex, тебе просто надо сделать выход, в случае, если ответ правильный. Это можно сделать несколькими способами:
1) поставить exit если ответ правильный
2) поставить next если ответ правильный
3) в условие цикла добавить проверки правильного ответа
Че-то я не втыкну вроде все делаю правильно а он не повторяет.
Код:
#!/usr/bin/perl -w

$im_thinking_of=int(rand 10);
print "Введите часло от 0 до 9:";
$guess=<STDIN>;
chomp $guess;
for ($guess==$im_thinking_of) {
	if ($guess>$im_thinking_of) {
		print "perebor!\п";
} elsif ($guess < $im_thinking_of) {
	print "NEDABOR!\п";
} else {
	print "You win."; }
	exit;
}
 

  #960  
Старый 02.03.2009, 13:49
demond
Участник форума
Регистрация: 05.11.2008
Сообщений: 105
Провел на форуме:
292722

Репутация: 71
По умолчанию

Цитата:
Сообщение от S0ulVortex  
Че-то я не втыкну вроде все делаю правильно а он не повторяет.
Код:
#!/usr/bin/perl -w

$im_thinking_of=int(rand 10);
print "Введите часло от 0 до 9:";
$guess=<STDIN>;
chomp $guess;
for ($guess==$im_thinking_of) {
	if ($guess>$im_thinking_of) {
		print "perebor!\п";
} elsif ($guess < $im_thinking_of) {
	print "NEDABOR!\п";
} else {
	print "You win."; }
	exit;
}
Он делает так, как ты ему говоришь! :-) exit должен быть в последнем else!
Вообще, от себя, посоветую использовать следующий стиль форматирования кода (ну или посчитать perlstyle и следовать тем советам!):
Код:
#!/usr/bin/perl -w

$im_thinking_of=int(rand 10);
print "Введите часло от 0 до 9:";
$guess=<STDIN>;
chomp $guess;
for ($guess==$im_thinking_of) 
{
	if ($guess>$im_thinking_of)
       {
	     print "perebor!\п";
        }
       elsif ($guess < $im_thinking_of)
       {
	     print "NEDABOR!\п";
       }
       else
       {
	     print "You win."; 
       }
	exit;
}
Это позволить избегать таких ошибок!
Код должен выглядеть так:
Код:
#!/usr/bin/perl -w

$im_thinking_of=int(rand 10);
print "Введите часло от 0 до 9:";
$guess=<STDIN>;
chomp $guess;
for ($guess==$im_thinking_of) 
{
	if ($guess>$im_thinking_of)
       {
	    print "perebor!\п";
        }
       elsif ($guess < $im_thinking_of)
       {
	     print "NEDABOR!\п";
       }
       else
       {
	     print "You win."; 
             exit;
       }
	
}
Разницу видишь? :-)

Последний раз редактировалось demond; 02.03.2009 в 13:53..
 
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ