LINUX.ORG.RU

perl + xor по ключу


1

0

Допустим есть:

$string = "1234567890";
$key = "adc";

Требуеться зашифровать на perl'е xor'ом строку $string по ключу $key.

Нашел пример, который работает при length($key) == 1

$string =~ s/(.)/chr(ord($1) ^ $key)/gse;

Подскажите алгоримтм, который шифрует по большему ключу?

★★★

В лоб:

my @key = unpack("C*", $key);

my $result = pack("C*", map { my $c = shift @key; push @key, $c; $_ ^ $c } unpack("C*", $string));

Только мееедленно это...

anonymous
()
Ответ на: комментарий от Mrak

Ну это в книжках есть :)

А вот ктобы объяснил такую конструкцию:

if($^W) {
  /\S/ || carp "name is blank";
}

Что есть '$^W' ?

anonymous
()
Ответ на: комментарий от anonymous

perldoc perlvar

       $WARNING
       $^W     The current value of the warning switch, initially true if -w was used, false oth-
               erwise, but directly modifiable.  (Mnemonic: related to the -w switch.)  See also
               warnings.

anonymous
()
Ответ на: комментарий от anonymous

ыот уж не подумал про perlvar, только ассоциации с хитрым регулярным выражением :)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.