Шифрование — это процесс преобразования информации с использованием алгоритма, который делает ее нечитаемой для всех, кроме тех, кто обладает специальными знаниями, обычно называемыми ключом.
Используя Multidmedia Zinc, мы создадим приложение для шифрования в ActionScript 3, способное шифровать текст и файлы с помощью указанного пользователем ключа.
Шаг 1: Краткий обзор
Используя класс mdm.Encryption и его методы, мы будем использовать простой интерфейс для получения файла, текста и ключа для шифрования.
Шаг 2: Начало
Откройте Flash и создайте новый файл Flash (ActionScript 3).

Установите размер сцены на 500×300 пикселей.
Шаг 3: Интерфейс
Простой интерфейс будет очень хорошо работать в этом приложении, поэтому я не буду подробно его создавать.
На начальном экране присутствуют четыре кнопки, текстовое поле и значок для отображения его функции. В нижней части сцены есть еще одно Texfield, которое будет отображать сообщение, когда шифрование / дешифрование завершено. Вы можете увидеть имена экземпляров на изображении.

Это второй вид, используемый в фильме. Это мувиклип с именем «TextView», который будет вызываться из ActionScript (не забудьте установить флажок), большой TextField с именем «encryptText» и другой с именем «encryptKey». В разделах Зашифрованный файл поле «encryptText» ДОЛЖНО иметь полный путь, вы не можете реализовать метод просмотра, чтобы получить полный путь из соображений безопасности.
Есть также две кнопки «encryptionButton» и кнопка, которая будет вызываться с помощью ActionScript для возврата на начальный экран. Она называется «BackButton», не забывая проверять «Экспорт для ActionScript» при преобразовании в MovieClip.

Как видите, интерфейс очень прост. Помните, что если у вас есть сомнения по поводу имен экземпляров, вы можете проверить источник.
Шаг 4: Код
Мы будем использовать один класс в этом приложении.
Создайте новый файл ActionScript и сохраните его как «Main.as».

Шаг 5: необходимые классы
Давайте сначала импортируем нужные нам классы.
|
1
2
3
4
5
6
7
8
9
|
package
{
import mdm.*;
import flash.display.Sprite;
import flash.events.MouseEvent;
import fl.transitions.Tween;
import fl.transitions.easing.Strong;
import fl.transitions.TweenEvent;
|
Шаг 6: Объявление и расширение класса
Ключевое слово extends определяет класс, который является подклассом другого класса. Подкласс наследует все методы, свойства и функции, так что мы можем использовать их в нашем классе.
|
1
2
|
public class Main extends Sprite
{
|
Шаг 7: переменные
Это переменные, которые мы будем использовать, объяснено в комментариях.
|
1
2
3
|
var tween:Tween;
var textView:TextView;
var back:BackButton;
|
Шаг 8: Расширение класса
Мы собираемся использовать специальные методы и свойства MovieClip, поэтому мы расширяем их с помощью класса MovieClip. Расширение с использованием класса Sprite не будет работать.
|
1
2
|
public class Main extends MovieClip
{
|
Шаг 9: функция конструктора
Это основная функция.
|
1
2
3
4
|
public function Main():void
{
mdm.Application.init(this, onInit);//Initialises {mdm}Script™.
}
|
Шаг 10: Функция инициализации
Эта функция выполняется при запуске скрипта mdm. Он просто вызывает функцию для добавления некоторых слушателей кнопки.
|
1
2
3
4
|
private function onInit():void
{
addButtonListeners();//Adds the listeners to the main four buttons
}
|
Шаг 11: добавь кнопку прослушивания
Это функция, которая добавляет слушателей.
|
1
2
3
4
5
6
7
|
private function addButtonListeners():void
{
efButton.addEventListener(MouseEvent.MOUSE_UP, encryptFileHandler);//Encrypt File listener
etButton.addEventListener(MouseEvent.MOUSE_UP, encryptTextHandler);/Encrypt Text listener
dfButton.addEventListener(MouseEvent.MOUSE_UP, decryptFileHandler);//Decrypt File listener
dtButton.addEventListener(MouseEvent.MOUSE_UP, decryptTextHandler);//Decrypt Text listener
}
|
Шаг 12: Удалить кнопку прослушивания
Слушатели будут удалены при нажатии одной из кнопок.
|
1
2
3
4
5
6
7
|
private function removeButtonListeners():void
{
efButton.removeEventListener(MouseEvent.MOUSE_UP, encryptFileHandler);
etButton.removeEventListener(MouseEvent.MOUSE_UP, encryptTextHandler);
dfButton.removeEventListener(MouseEvent.MOUSE_UP, decryptFileHandler);
dtButton.removeEventListener(MouseEvent.MOUSE_UP, decryptTextHandler);
}
|
Шаг 13: Анимация кнопки
Анимация переместит кнопки со сцены, чтобы скрыть их.
|
1
2
3
4
5
6
7
8
9
|
private function animateButtons():void
{
/* Moves the buttons to the right */
tween = new Tween(efButton,»x»,Strong.easeOut,efButton.x,stage.stageWidth + efButton.width,1,true);
tween = new Tween(etButton,»x»,Strong.easeOut,etButton.x,stage.stageWidth + etButton.width,1,true);
tween = new Tween(dfButton,»x»,Strong.easeOut,dfButton.x,stage.stageWidth + dfButton.width,1,true);
tween = new Tween(dtButton,»x»,Strong.easeOut,dtButton.x,stage.stageWidth + dtButton.width,1,true);
}
|
Шаг 14: Обработчики шифрования файлов
Эти функции вызывают шифрование / дешифрование файла в зависимости от нажатой кнопки.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
|
private function encryptFileHandler(e:MouseEvent):void
{
showTextView();//Shows the «TextView»
textView.encryptionButton.addEventListener(MouseEvent.MOUSE_UP, encryptFile);//Adds the listener to the Encryption Button
}
private function decryptFileHandler(e:MouseEvent):void
{
showTextView();
textView.encryptionButton.txt.text = «Decrypt»;
textView.encryptionButton.txtLP.text = «Decrypt»;
textView.encryptionButton.addEventListener(MouseEvent.MOUSE_UP, decryptFile);
}
|
Шаг 15: Шифрование / дешифрование файлов
Эти функции используют класс mdm.Encrypt для шифрования / дешифрования файла, полученного путем записи полного пути в большом TextField и записи ключа в маленьком.
Примечание редактора: я боюсь, что ActionScript на этом шаге заставит нашу подсветку синтаксиса отключить Firefox (иногда это происходит, и я не знаю почему). На данный момент лучше скачать его, чтобы посмотреть . Приносим извинения за неудобства.
Шаг 16: Обработчики шифрования текста
Эти функции вызывают шифрование / дешифрование текста в зависимости от нажатой кнопки.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
|
private function encryptTextHandler(e:MouseEvent):void
{
showTextView();
textView.encryptionButton.addEventListener(MouseEvent.MOUSE_UP, encryptText);
}
private function decryptTextHandler(e:MouseEvent):void
{
showTextView();
textView.encryptionButton.txt.text = «Decrypt»;
textView.encryptionButton.txtLP.text = «Decrypt»;
textView.encryptionButton.addEventListener(MouseEvent.MOUSE_UP, decryptText);
}
|
Шаг 17: Шифрование текста
Эти функции используют класс mdm.Encrypt для шифрования / дешифрования строки, полученной путем записи текста в большом текстовом поле и записи ключа в маленьком.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
private function encryptText(e:MouseEvent):void
{
if (textView.encryptText.length != 0 && textView.encryptKey.length != 0)
{
/* mdm.Encryption.encryptString(key:String, dataToEncrypt:String, [oldMethod:Boolean = true]):String */
textView.encryptText.text = mdm.Encryption.encryptString(textView.encryptKey.text,textView.encryptText.text,false);
message.text = «Encryption Completed»;
}
else
{
trace(«Please fill all fields»);
}
}
private function decryptText(e:MouseEvent):void
{
if (textView.encryptText.length != 0 && textView.encryptKey.length != 0)
{
/* mdm.Encryption.decryptString(key:String, dataToDecrypt:String, [oldMethod:Boolean = true]):String */
textView.encryptText.text = mdm.Encryption.decryptString(textView.encryptKey.text,textView.encryptText.text,false);
message.text = «Decryption Completed»;
}
else
{
trace(«Please fill all fields»);
}
}
|
Шаг 18: Просмотр текста
TextView — это вид, который появляется при нажатии на одну из четырех основных кнопок, вот код, который его вызывает.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
|
private function showTextView():void
{
textView = new TextView();
removeButtonListeners();
animateButtons();
addBackButton();
textView.x = stage.stageWidth / 2;
addChild(textView);
tween = new Tween(textView,»y»,Strong.easeOut,stage.stageHeight + textView.height,stage.stageHeight / 2,1,true);
}
|
Шаг 19: Кнопка «Назад»
Кнопка Назад отображается, когда TextView активен. При нажатии он возвращает кнопки на экран и удаляет TextView и себя. Также очищает TextField «сообщение».
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
private function addBackButton():void
{
back = new BackButton();
back.x = back.width;
back.y = stage.stageHeight / 2;
addChild(back);
back.addEventListener(MouseEvent.MOUSE_UP, backHandler);
}
private function backHandler(e:MouseEvent):void
{
message.text = «»;
back.removeEventListener(MouseEvent.MOUSE_UP, backHandler);
removeChild(textView);
tween = new Tween(efButton,»x»,Strong.easeOut,efButton.x,140,1,true);
tween = new Tween(etButton,»x»,Strong.easeOut,etButton.x,360,1,true);
tween = new Tween(dfButton,»x»,Strong.easeOut,dfButton.x,140,1,true);
tween = new Tween(dtButton,»x»,Strong.easeOut,dtButton.x,360,1,true);
removeChild(back);
addButtonListeners();
}
|
Шаг 20: Класс документа
Вернитесь к Fla и в панели свойств, в текстовое поле Class добавьте «Main». Это свяжет основной класс как класс документа.
Шаг 21: Цинк

Теперь тестирование вашего нового приложения приведет к ряду ошибок, возникших в результате использования классов MDM. Чтобы исправить это и заставить ваше шифрование работать, мы должны приобрести Multidmedia Zinc .
Zinc — это программа для разработки приложений на Flash, которая расширяет функциональность Flash Movie с помощью скрипта {mdm}, языка программирования, похожего на ActionScript. Вы можете загрузить бесплатную пробную версию с его веб-сайта.
Шаг 22: цинковый компонент
После загрузки Zinc Builder необходимо связать их скомпилированный компонент с Flash, чтобы интерпретировать скрипт mdm и удалить предупреждения об ошибках.
Перейдите во Flash> «Настройки»> «Категория» ActionScript> «Параметры ActionScript 3.0» и щелкните значок SWC, чтобы добавить компонент.

Протестируйте свой фильм, чтобы создать SWF без ошибок и открыть Zinc.
Шаг 23: Сборка
Создайте новый проект (Cmd + N) и найдите файл SWF.
Используйте левую и правую панели для настройки вашего приложения.

Затем перейдите на вкладку «Расширения» и отметьте комбинированный список mdm_encryption.

Наконец, перейдите в Project> Build Project и нажмите build, чтобы скомпилировать ваше приложение.
Вывод
Протестируйте свое новое программное обеспечение для шифрования и не забудьте изучить скрипт Zinc {mdm}!
Спасибо за прочтение 🙂

