Шифрование — это процесс преобразования информации с использованием алгоритма, который делает ее нечитаемой для всех, кроме тех, кто обладает специальными знаниями, обычно называемыми ключом.
Используя 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}!
Спасибо за прочтение 🙂