Codierung/Decodierung

Matthias Kannengiesser

Erfahrenes Mitglied
Hier haben wir ein Beispiel zur Codierung von Textfeldinhalten via ActionScript. Es handelt sich dabei um zwei Funktion.

Was euch recht schnell auffallen wird ist die einfache Codierung, diese lässt sich natürlich beliebig erweitern und damit wesentlich sicherer machen. Um die ersten Gehversuche zu machen ist dieses Beispiel sicherlich recht gut geeignet.

PHP:
// Codierung 
function codierung(codeObj) { 
   codeText = ""; 
   anzahl = codeObj.length; 
   for (var i = 0; i < anzahl; i++) {       
      // Zeichencode feststellen 
      code = codeObj.charCodeAt(i);       
      // Neuer Zeichencode 
      newCode = code + 1;       
      // Neues Zeichen umwandeln 
      newZeichen = String.fromCharCode(newCode);       
      // Zeichen in neue Zeichenkette 
      codeText += newZeichen; 
   } 
   return codeText; 
} 

// Decodierung 
function decodierung(decObj) { 
   decText = ""; 
   anzahl = decObj.length; 
   for (var i = 0; i < anzahl; i++) {       
      // Zeichencode feststellen 
      decCode = decObj.charCodeAt(i);       
      // Neuer Zeichencode 
      newdecCode = decCode - 1;       
      // Neues Zeichen umwandeln 
      decZeichen = String.fromCharCode(newdecCode);       
      // Zeichen in neue Zeichenkette 
      decText += decZeichen; 
   } 
   return decText; 
} 

butCode.onRelease = function() { 
   aus_txt.text = codierung(feld_txt.text); 
} 

butDecode.onRelease = function() { 
   aus_txt.text = decodierung(codeText); 
}

Beispiel:
hier lang

Liebe Grüsse
Matze
 
Hi Matze

coole idee. hier ein versuch, eine art verschlüsselung einzubringen. die funktion decodierung erstellt einen array, der aus sovielen Zufallszahlen besteht, wie der text buchstaben hat. jeder buchstaben wird folglich nach der ihm zugeteilten zufallszahl codiert und wieder decodiert.

thx für deine nie versiegende inspiration.

PHP:
// erstellt den array
function con_filler() {
	container = new Array();
	for (z=0; z<=anzahl; z++) {
		container.push(random(10));
	}
}
function codierung(codeObj) {
	anzahl = codeObj.length;
	con_filler();  // ruft die array-func auf
	codeText = "";
	for (var j = 0; j<anzahl; j++) {
		code = codeObj.charCodeAt(j);
		newCode = code+container[j];
		newZeichen = String.fromCharCode(newCode);
		codeText += newZeichen;
	}
	return codeText;
}
function decodierung(decObj) {
	decText = "";
	anzahl = decObj.length;
	for (var i = 0; i<anzahl; i++) {
		// Zeichencode feststellen 
		decCode = decObj.charCodeAt(i);
		// Neuer Zeichencode 
		newdecCode = decCode-container[i];
		// Neues Zeichen umwandeln 
		decZeichen = String.fromCharCode(newdecCode);
		// Zeichen in neue Zeichenkette 
		decText += decZeichen;
	}
	return decText;
}
butCode.onRelease = function() {
	aus_txt.text = codierung(feld_txt.text);
};
butDecode.onRelease = function() {
	aus_txt.text = decodierung(codeText);
};


ps: hab leider dein buch immer noch nicht erhalten. wir non-eu-citizen sind schon geplagte schweine. vertröste mich derweil mit rob penner. auch nicht übel;)



gruss skyla
 
Skyla noch eine Anpassung - ähnliche Funk. hat ich im Schubkasten. Klasse wie man sich inspiriert.

PHP:
// Zufallsliste
function randomizer(zwert) {
	codelist = new Array();
	for (z = 0; z <= anzahl; z++) {
		codelist.push(random(zwert));
	}
	// Codelisten Inhalt verstecken (nur eine Spielerei)
	ASSetPropFlags(this.codelist, null, 1,1);
}
function codierung(codeObj,wert) {
	anzahl = codeObj.length;
	randomizer(wert);	
	codeText = "";
	for (var j = 0; j < anzahl; j++) {
		code = codeObj.charCodeAt(j);
		newCode = code + codelist[j];		
		newZeichen = String.fromCharCode(newCode);
		codeText += newZeichen;
	}
	return codeText;
}
function decodierung(decObj) {
	decText = "";
	anzahl = decObj.length;
	for (var i = 0; i < anzahl; i++) {		
		decCode = decObj.charCodeAt(i);		
		newdecCode = decCode - codelist[i];		
		decZeichen = String.fromCharCode(newdecCode);		
		decText += decZeichen;
	}
	return decText;
}
butCode.onRelease = function() {
	aus_txt.text = codierung(feld_txt.text,100);
};
butDecode.onRelease = function() {
	aus_txt.text = decodierung(codeText);
};

Hab den zwert flexibel gesetzt und ASSetPropFlags ist auch eine witzige Spielerei.

Liebe Grüsse
Matze
 
ASSetPropFlags ist klasse ! Speziell im zusammenhang mit anderen undokumentierten objekten. insbesondere kann man jetzt auch dem Object.prototype Methoden hinzufügen, sie mit ASSetProbFlags verschwinden lassen, und so den allfällige problemen bei for...in loops aus dem weg gehen. ASSetPropFlasgs wird in der siebner version documented sein.

@Matze: du hast sicher schon genug um die Ohren. Ich werde mir dein buch im laden besorgen. But thanks !

gruss skyla
 
Yup ich hoffe auch das ASSetPropFlags() in der nächsten Version dokumentiert ist, sollten Sie es noch in der Entwicklungsumgebung lassen. Daher habe ich im Buch erstmal darauf verzichtet es zu beschreiben.

Unter folgender URL gibt es jedoch im Bereich Extras, was feines dazu:
hier lang

Liebe Grüsse
Matze

P.S.: Nun noch einen Guten Rutsch ins Neue Jahr!
 
Zurück