Вернуться   CoderX :: Forums > Основные форумы > Программинг
Войти через OpenID

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
 
 
Опции темы Опции просмотра
Старый 02.09.2011, 12:29   #5
Новичок
 
Аватар для Marfey
 
Регистрация: 14.04.2008
Сообщений: 19
Сказал Спасибо: 7
Имеет 3 спасибок в 3 сообщенях
Marfey
По умолчанию

Не правильная функция RepairKey была (помимо того что 127 байт прилетало с нее)
Вот рабочий код (На сервер отослал все работаeт)
Были еще грабли со снятием XOR, но теперь все норм.)
Код:
#!/usr/bin/perl -w
use Crypt::OpenSSL::Bignum;
use Crypt::OpenSSL::RSA;

my $rsa="F735C7C2DF469CA4E09ABD36BD76A4F13CA6F9679A4156E1374B0BECBC7A6CD73D31A4C97816CE555ABA59AA2CF3D39C330DB2904EEFD15B0D70D9765A1F91C8";
my $login ="testlogin";
my $password ="testpass";

authlogin($login, $password, $rsa);

sub rsa_encrypt {
   my ($message, $rsakey) = @_;
   my $bn = Crypt::OpenSSL::Bignum->new_from_bin(RepairKey($rsakey));
   my $be = Crypt::OpenSSL::Bignum->new_from_word(65537);
   my $rsa = Crypt::OpenSSL::RSA->new_key_from_parameters($bn, $be);
   $rsa->use_no_padding();.
   my $crypt_message = $rsa->encrypt($message);
   return $crypt_message;
}

sub RepairKey {
    my $key1 = shift;
    my @key = split //, $key1;
    my $i;
    # step 4 xor last 0x40 bytes with first 0x40 bytes
    for( $i=0; $i<0x40; $i++ ) {
    $key[0x40 + $i] = $key[0x40 + $i] ^ $key[$i];
    }
    # step 3 xor bytes 0x0d-0x10 with bytes 0x34-0x38
     for( $i=0; $i<4; $i++ ) {
    $key[0x0d + $i] = $key[0x0d + $i] ^ $key[0x34 + $i];
     }
    # step 2 xor first 0x40 bytes with last 0x40 bytes
    for( $i=0; $i<0x40; $i++ ) {
    $key[$i] = $key[$i] ^ $key[0x40 + $i];
    }
    for( $i=0; $i<4; $i++ ) {
    my $temp = $key[0x00 + $i];
    $key[0x00 + $i] = $key[0x4d + $i];
    $key[0x4d + $i] = $temp;
     }
     my $key2;
    for( $i=0; $i<length($key1); $i++ ) {
    $key2.=  join('', $key[$i]);
    }
   return($key2);
 }

Последний раз редактировалось Marfey, 03.09.2011 в 09:03. Причина: Добавлено сообщение
Marfey вне форума   Ответить с цитированием
За это сообщение Marfey нажился спасибкой от:
 

  CoderX :: Forums > Основные форумы > Программинг



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 07:10.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!