Versleuteling is het proces waarbij informatie wordt getransformeerd met behulp van een algoritme om het voor iedereen onleesbaar te maken, behalve voor degenen die speciale kennis bezitten, meestal een sleutel genoemd.
Met behulp van Multidmedia Zinc maken we een coderingsapplicatie in ActionScript 3, in staat om tekst en bestanden te coderen met een door de gebruiker opgegeven sleutel.
Met behulp van de mdm.Encryption-klasse en zijn methoden, zullen we gebruik maken van een eenvoudige interface om het bestand, de tekst en de sleutel te verkrijgen om te coderen.
Open Flash en maak een nieuw Flash-bestand (ActionScript 3).
Stel de stage in op 500x300 px.
Een eenvoudige interface zal heel goed werken in deze applicatie, dus ik ga de creatie ervan niet gedetailleerd beschrijven.
Vier knoppen zijn aanwezig in het startscherm, een Texfield en een pictogram wordt gebruikt om zijn functie weer te geven. Er is ook nog een Texfield in de bodem van het werkgebied dat een bericht zal weergeven wanneer de codering / decodering voltooid is. U kunt de instantienamen in de afbeelding zien.
Dit is de tweede weergave die in de film wordt gebruikt. Het is een MovieClip genaamd "TextView" die wordt aangeroepen vanuit ActionScript (vergeet niet om het vakje aan te vinken), een groot TextField genaamd "encryptionText" en de andere genaamd "encrypteKey". In de secties Versleutelen moet het "encryptionText" -veld een volledig pad hebben, u kunt een bladermethode niet implementeren om een volledig pad te krijgen om veiligheidsredenen.
Er zijn ook twee knoppen, "encryptionButton", en een knop die wordt aangeroepen met ActionScript om terug te keren naar het startscherm. Dit wordt "BackButton" genoemd. Vergeet niet om het "Exporteren voor ActionScript" te selecteren bij het converteren naar MovieClip.
Zoals je ziet, is de interface heel eenvoudig. Vergeet niet dat als u twijfels hebt over de instantienamen, u de bron kunt controleren.
We zullen een enkele klasse gebruiken in deze applicatie.
Maak een nieuw ActionScript-bestand en sla het op als "Main.as".
Laten we eerst de klassen importeren die we nodig hebben.
pakket import mdm. *; // De mdm-klassen, u moet dit importeren om de mdm-methoden en eigenschappen te importeren flash.display.Sprite; import flash.events.MouseEvent; import fl.transitions.Tween; import fl.transitions.easing.Strong; import fl.transitions.TweenEvent;
De strekt keyword definieert een klasse die een subklasse van een andere klasse is. De subklasse erft alle methoden, eigenschappen en functies, op die manier kunnen we ze in onze klasse gebruiken.
public class Main breidt uit
Dit zijn de variabelen die we zullen gebruiken, uitgelegd in de opmerkingen.
var tween: Tween; // Een tween-object om var-tekst te animerenView: TextView; // Het TextView-object, dit is een instantie van de TextView MovieClip var back: BackButton; // Een exemplaar van de BackButton die we eerder hebben gemaakt
We gaan MovieClip-specifieke methoden en eigenschappen gebruiken, dus we breiden deze uit met de MovieClip-klasse. Uitbreiden met de Sprite-klasse werkt niet.
public class Main breidt MovieClip uit
Dit is de hoofdfunctie.
public function Main (): void mdm.Application.init (this, onInit); // Initializes mdm Script ™. Dit is alleen vereist voor toepassingen die zijn geprogrammeerd in ActionScript 3.
Deze functie wordt uitgevoerd wanneer het mdm-script start. Het roept gewoon een functie op om enkele luisteraars toe te voegen.
private function onInit (): void addButtonListeners (); // Voegt luisteraars toe aan de vier hoofdknoppen
Dit is de functie die de luisteraars toevoegt.
private function addButtonListeners (): void efButton.addEventListener (MouseEvent.MOUSE_UP, encryptionFileHandler); // Codeer bestandslistener etButton.addEventListener (MouseEvent.MOUSE_UP, encryptionTextHandler); / Tekstluister coderen dfButton.addEventListener (MouseEvent.MOUSE_UP, decryptFileHandler); // Ontcijfer bestand luisteraar dtButton.addEventListener (MouseEvent.MOUSE_UP, decryptTextHandler); // Ontcijfer tekst luisteraar
De luisteraars worden verwijderd wanneer op een van de knoppen wordt geklikt.
private function removeButtonListeners (): void efButton.removeEventListener (MouseEvent.MOUSE_UP, encryptionFileHandler); etButton.removeEventListener (MouseEvent.MOUSE_UP, encryptionTextHandler); dfButton.removeEventListener (MouseEvent.MOUSE_UP, decryptFileHandler); dtButton.removeEventListener (MouseEvent.MOUSE_UP, decryptTextHandler);
Een animatie verplaatst de knoppen van het werkgebied om ze te verbergen.
private function animateButtons (): void / * Beweegt de knoppen naar rechts * / tween = nieuwe Tween (efButton, "x", Strong.easeOut, efButton.x, stage.stageWidth + efButton.width, 1, true); tween = nieuwe Tween (etButton, "x", Strong.easeOut, etButton.x, stage.stageWidth + etButton.width, 1, true); tween = nieuwe Tween (dfButton, "x", Strong.easeOut, dfButton.x, stage.stageWidth + dfButton.width, 1, true); tween = nieuwe Tween (dtButton, "x", Strong.easeOut, dtButton.x, stage.stageWidth + dtButton.width, 1, true);
Deze functies roepen de codering / decodering van bestanden aan, afhankelijk van de knop waarop is geklikt.
private function encryptionFileHandler (e: MouseEvent): void showTextView (); // Geeft de tekst "TextView" weerView.encryptionButton.addEventListener (MouseEvent.MOUSE_UP, encryptionFile); // Voegt de listener toe aan de coderingsknop private function decryptFileHandler (e : MouseEvent): void showTextView (); textView.encryptionButton.txt.text = "Decrypt"; // Wijzigt de coderingsknop tekstvelden tekstView.encryptionButton.txtLP.text = "Decrypt"; textView.encryptionButton.addEventListener (MouseEvent.MOUSE_UP, decryptFile);
Deze functies maken gebruik van de mdm.Encrypt-klasse om een bestand te versleutelen / decoderen, verkregen door een volledig pad in het grote TextField te schrijven en een sleutel in de kleine te schrijven.
Opmerking van de uitgever: Ik ben bang dat de ActionScript-code in deze stap ervoor zorgt dat onze syntaxis-markeerstift Firefox overstuurt (dit gebeurt soms en ik heb geen idee waarom). Voor nu is het het beste om het te downloaden om er een kijkje te nemen. Excuses voor het ongemak.
Deze functies bellen de codering / decodering van de tekst, afhankelijk van de knop waarop is geklikt.
private functie encryptionTextHandler (e: MouseEvent): void showTextView (); textView.encryptionButton.addEventListener (MouseEvent.MOUSE_UP, versleuteltekst); private function decryptTextHandler (e: MouseEvent): void showTextView (); textView.encryptionButton.txt.text = "Decrypt"; textView.encryptionButton.txtLP.text = "Decrypt"; textView.encryptionButton.addEventListener (MouseEvent.MOUSE_UP, decryptText);
Deze functies maken gebruik van de mdm.Encrypt-klasse om een string te versleutelen / decoderen, verkregen door het schrijven van tekst in het grote TextField en het schrijven van een sleutel in de kleine.
private functie encryptionText (e: MouseEvent): void if (textView.encryptText.length! = 0 &&View.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 = "Versleuteling voltooid"; else trace ("Vul alle velden in"); persoonlijke functie decryptText (e: MouseEvent): void if (textView.encryptText.length! = 0 &&View.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 = "Ontsleuteling voltooid"; else trace ("Vul alle velden in");
De tekstweergave is de weergave die verschijnt wanneer op een van de vier hoofdknoppen wordt geklikt, hier is de code die deze naar voren brengt.
private function showTextView (): void textView = new TextView (); removeButtonListeners (); animateButtons (); addBackButton (); textView.x = stage.stageWidth / 2; addChild (TextView); tween = nieuwe Tween (textView, "y", Strong.easeOut, stage.stageHeight + textView.height, stage.stageHeight / 2,1, true); // Verplaatst deze weergave omhoog
De knop Terug wordt weergegeven wanneer TextView actief is. Als u hierop drukt, worden de knoppen naar het scherm teruggebracht en wordt de tekstweergave en zichzelf verwijderd. Het maakt ook het "bericht" TextField leeg.
private function addBackButton (): void back = new BackButton (); back.x = back.width; back.y = stage.stageHeight / 2; addChild (achter); back.addEventListener (MouseEvent.MOUSE_UP, backHandler); private functie backHandler (e: MouseEvent): void message.text = ""; back.removeEventListener (MouseEvent.MOUSE_UP, backHandler); removeChild (TextView); tween = nieuwe Tween (efButton, "x", Strong.easeOut, efButton.x, 140,1, true); tween = nieuwe Tween (etButton, "x", Strong.easeOut, etButton.x, 360,1, true); tween = nieuwe Tween (dfButton, "x", Strong.easeOut, dfButton.x, 140,1, true); tween = nieuwe Tween (dtButton, "x", Strong.easeOut, dtButton.x, 360,1, true); removeChild (achter); addButtonListeners ();
Ga terug naar de Fla en voeg in het eigenschappenvenster het tekstveld 'Hoofd' toe. Hiermee wordt de hoofdklasse gekoppeld aan de documentklasse.
Nu zal het testen van uw nieuwe toepassing resulteren in een serie erros als gevolg van het gebruik van de MDM-klassen. Om dat te verhelpen en je versleuteling te laten werken, moeten we Multidmedia Zinc kopen.
Zink is een Flash Application Development Software die de functionaliteit van de Flash Movie uitbreidt door mdm Script te gebruiken, een programmeertaal die vergelijkbaar is met ActionScript, u kunt een gratis proefversie downloaden van zijn website.
Nadat u Zinc Builder hebt gedownload, moet u hun gecompileerde component koppelen aan Flash om het mdm-script te interpreteren en de foutwaarschuwingen te verwijderen.
Ga naar Flash> Voorkeuren> (Categorie) ActionScript> ActionScript 3.0-instellingen en klik op het swc-pictogram om het onderdeel toe te voegen.
Test je film om een swf zonder fouten te maken en open Zink.
Maak een nieuw Project (Cmd + N) en blader naar uw SWF-bestand.
Gebruik de linker- en rechterpanelen om uw toepassing aan te passen.
Ga vervolgens naar het tabblad Extensies en markeer de mdm_encryption-combobox.
Ga tenslotte naar Project> Build Project en klik op build om uw applicatie te compileren.
Test uw nieuwe coderingssoftware en vergeet niet om het zink mdm -script te verkennen!
Bedankt voor het lezen :)