stringtranslate.com

Qrpff

qrpff — это сценарий Perl , созданный Китом Уинстейном и Марком Горовицем из MIT SIPB . [1] Он выполняет DeCSS в шесть или семь строк. Само имя представляет собой кодировку «decss» в rot-13 . Алгоритм переписывался 77 раз, чтобы сократить его до шести строк. [2]

Фактически существуют две версии qrpff: короткая версия (6 строк) и быстрая версия (7 строк). Оба показаны ниже.

Короткий:

#!/usr/bin/perl # 472-байтовый qrpff, Кейт Уинстейн и Марк Горовиц <[email protected]> # Файл MPEG 2 PS VOB -> дешифрованный вывод на стандартный вывод. # использование: perl -I <k1>:<k2>:<k3>:<k4>:<k5> qrpff # где k1..k5 — байты ключа заголовка в порядке от наименее до наиболее значимогоs '' $/ =\ 2048 ; в то время как ( <> ){ G знак равно 29 ; Р = 142 ; если (( @a = unqT = "C*" , _ )[ 20 ] & 48 ){ D = 89 ; _ = unqb24 , qT , @ b = map { ord qB8 , unqb8 , qT , _ ^ $a [ -- D ]} @INC ; s/...$/1$&/ ; Q = unqV , qb25 , _ ; Н = 73 ; О = $b [ 4 ] << 9 | 256 | [ 3 ]; Q = Q >> 8 ^ ( P = ( E = 255 ) & ( Q >> 12 ^ Q >> 4 ^ Q / 8 ^ Q )) <<17,O=O> > 8 ^ ( E & ( F = ( S = O >> 14 & 7 ^ O ) ^ S * 8 ^ S << 6 )) << 9 , _ = ( map { U = _ %16orE ^= R ^= 110 & ( S = ( unqT , "\xb\ntd\xbz\x14d" )[ _ / 16 %8 ]); E ^= ( 72 , @z = ( 64 , 72 , G ^= 12 * ( U - 2 ? 0 : S & 17 )) H ^= _ %64 ? 12 : 0 , @z )[ _ %8 ]}( 16 .. 271 ))[ _ ] ^ (( D >>= 8 ) += P + ( ~ F & E )) для @a [ 128 .. $#a ]} print + qT , @a } ' ; s/[D-HO-U_]/\$$&/g ; с/к/упаковка+/г ; оценивать

Быстрый:

#!/usr/bin/perl -w # 531-байтовый qrpff-fast, Кейт Уинстейн и Марк Горовиц <[email protected]> # VOB-файл MPEG 2 PS на стандартный ввод -> дешифрованный вывод на стандартный вывод # аргументы : байты ключа заголовка в порядке от наименее до наиболее значимого.$_ = ' while(read+STDIN,$_,2048){$a=29;$b=73;$c=142;$t=255;@t=map{$_%16or$t^=$ c^=( $m=(11,10,116,100,11,122,20,100)[$_/16%8])&110;$t^=(72,@z=(64,72,$a^=12*($ _%16 -2?0:$m&17)),$b^=$_%64?12:0,@z)[$_%8]}(16..271);if((@a=unx "C*",$_)[20]&48){$h =5;$_=unxb24,join"",@b=map{xB8,unxb8,chr($_^$a[--$h+ 84])}@ARGV;s/...$/1$&/;$ d=unxV,xb25,$_;$e=256|(ord$b[4])<<9|ord$b[ 3];$d=$d>>8^($f=$t&($d>>12^$d>>4^ $d^$d/8))<<17,$e=$e> >8^($t&($g=($q=$e>>14&7^$e)^$q*8^$q<<6))<<9,$_=$t[$_]^ (($h>>=8)+=$f+(~$g&$t))for@a[128..$#a]}print+x"C*",@a}' ; с/х/пакет+/г ; оценивать

Быстрая версия на самом деле достаточно быстра, чтобы декодировать фильм в реальном времени.

qrpff и связанные с ним памятные вещи были проданы за 2500 долларов на The Algorithm Auction , первом в мире аукционе компьютерных алгоритмов . [3]

Рекомендации

  1. МакКаллах, Деклан (8 марта 2001 г.). «Расшифруй этот DVD в 7 строк». Проводной . Проверено 26 апреля 2013 г.
  2. Хотц, Роберт (27 мая 2015 г.). «Что нового в мире искусства? Алгоритмы». Уолл Стрит Джорнал . Проверено 27 мая 2015 г.
  3. ^ "Кит Уинштейн - qrpff" . Артистичный . Проверено 18 июня 2015 г.

Внешние ссылки