Писане на ActionScript криптиране
Нискобюджетни сайтове.
Промоция на уебсайт.
Писане на ActionScript криптиране
10.04.04
Мисля, че много от нас са се сблъсквали с такива ситуации, когато не искате информацията ви да бъде достъпна за някой друг освен вас. Такъв контрол върху информацията може да се извърши по много начини, но аз искам да говоря за това как да напиша най-простия крипто-алгоритъм за прословутата програма за макромедиа, широко разпространена в Интернет. За да разберете и да получите поне някаква полза от тази статия, трябва да знаете основите на езика ActionScript. .
Както знаете, има няколко вида шифри: заместващ шифър, пермутационен шифър, криптиране на ключ и т.н. Ще използваме пермутационния шифър, защото е лесен за изпълнение и не е много сложен. Мисля, че от името става ясно, че пермутационният шифър се основава на пермутацията на символи според определен алгоритъм.
Например:
имаме референтна поредица от символи -
a b c d e f g h i j k l m n o p q r s t u v x y z
за криптиране на фразата "здравей" ще използваме пермутация от 4 символа напред, ако символите излизат извън обхвата на реда на символите, тогава започваме да броим от самото начало. И така от думата "здравей" получаваме "фохожич".
P - P [r s t u] F
^^^^ Пропуснете 4 знака.
Мисля, че имате обща представа за пермутационния шифър. Сега да преминем директно към програмирането. За по-голяма яснота ние прилагаме пермутационния шифър малко по-сложно:
/ * в него */
var encStep = 3; // променлива стъпка за криптиране
var sTable = "abcdefghijklmnopqrstuvwxyz0123456789"; // нашият ред с символи
var stl = sTable.length; // дължината на символния низ
var encArr = нов масив (); // масив, който ще съхранява символите на фразата за криптиране
var cTable = нов масив (); // съотношението на поредицата от знаци към числовото за кодираната фраза
var nTable = нов масив (); // числов еквивалент на символен низ
криптиране на функцията (tx) var txl = tx.length; // дължина на шифрованата фраза
var encrypted = "; // променлива за съхраняване на получената криптирана фраза
/ * 1 */за (var i = 0; i = _root.stl) cTable [i] - = _root.stl;
>
>
/ * 5 */за (i = 0; i
Сега нека разгледаме по-отблизо алгоритъма на кода. Имаме поредица от герои -
ние присвояваме този ред на променливата sTable. Променливата encStep съхранява стъпката, използвана за изчисляване на отместването. На променливата stl се присвоява дължината на символния низ за по-нататъшни изчисления. В масива encArr ще съхраняваме всеки знак от кодираната фраза поотделно. Тоест, ако криптираме индексната фраза, масивът ще приеме следната форма:
encArr [0] = "i";
encArr [1] = "n";
encArr [2] = "d";
encArr [3] = "e";
encArr [4] = "x";
Масивът cTable съхранява съотношението на поредицата от знаци към цифровата, а индексната фраза в масива ще изглежда така:
cТаблица [0] = 9;
cТаблица [1] = 14;
cTable [2] = 4;
cТаблица [3] = 5;
cТаблица [4] = 24;
Масивът nTable е числовият еквивалент на символен низ.
Шифрованата фраза се предава на функцията за криптиране като параметър. По този начин функцията извиква криптиране ("sometext"); ще шифрова фразата някакъв текст. Променливата txl съхранява дължината на кодираната фраза. Криптираната променлива ще съхранява резултата от криптирането. В първия цикъл присвояваме символен низ на числов. Вторият цикъл поставя фразата в масива encArr за един символ. Третият цикъл поставя цифровия еквивалент на кодираната фраза в масива cTable. В четвъртия цикъл процесът на смяна върви директно.