20-01-2004 17:34 А сечас мы, малыши, посмеемся от души..
без комментариев
а это чиста программерский прикол, но я пока его еще не расшифровал - потому что болею и соображаю туго ;-) Нормальные люди врядли поймут в чем тут прикол ;-)
я тут болею, а вы издеваетесь, ребенка любой обидеть норовит
Роланд
Перловый код, осуществляющий кодирование/декодирование ключа RSA, и офигительно маленький.. типа можно в подпись письма добавлять ;-)
# $s может быть -d или -e (decode/encode), $k - это экспонента, $n - модуль; $k и $n шестнадцатеричные
($s,$k,$n)=@ARGV
# $w - количество цифр в $n
$w=length $n
# Добавляем к $n и $k начальные нули, чтобы количество цифр было четным,
# так как при упаковке 2 числа занимают 1 байт
$k="0$k"if length($k)&1
$n="0$n", $w++ if $w&1
# Выводим сообщение об использовании скрипта, если $s не '-e' и '-d' или мало параметров
die "$0 -d|-e key mod <in >out\n" if $s!~/^-[de]$/ || $#ARGV<2
# $v эт количество цифир на выходе, $w на входе.
# и в зависимости от того, кодируем мы или декодируем - они подгоняются друг под друга.
$v=$w
$s=~/d/?$v-=2:$w-=2
# Загоняем в $_ экспоненту $k в двоичном виде
$_=unpack('B*',pack('H*',$k))
# Убиваем начальные 0 в $_
s/^0*//g
# Заменяем 0 на "d*ln%", 1 на "d*ln%lm*ln%".
# в общем сам алгоритм кодирования ;-)
s/0/d*ln%/g
s/1/d*ln%lm*ln%/g
# Добавляем 1 в начале, p в конце полученной строки и запихиваем все это в $c
# В общем получается непереводимый набор символов ;-)))
$c="1${_}p"
# Цыкл, чтобы наконец-то все закодировать/раскодировать и вывести на экран.
while(read(STDIN,$m,$w/2)){
$m=unpack("H$w",$m)
chop($a=`echo 16o16i\U$m\Esm\U$n\Esn$c|dc`)
print pack('H*','0'x($v-length $a).$a)
}
Вот.. а есть еще более шедевры кодирования RSA ключей - 3 и 2строчные..
Соответственно:
юбилей
[Print]
Sunsai