problem mit javascript =(

Tag Leute, bin absolut neu hier und starte erstmal mit ner richtig blöden frage =)

Ich komm hierbei nicht weiter, und zwar will ich dieses Programm so umformen dass es die eingegebenen Wörter trennt.

Das Programm ist zur Chiffrierung eines Textes anhand einer schlüsselzahl und einem Schlüsselwort, im Prinzip ein etwas verbesserter Caesar Code.

Nur besteht das Problem dass er bei der Ver und entschlüsselung keine leerzeichen beachtet und ich kriegs echt nicht hin......

<script language=JavaScript><!--

var alphabet = "abcdefghijklmnopqrstuvwxyz";

var schluessel;

function erzeugen() {

var alpha=alphabet;

var zahl=document.myform.zahl.value;

var wort=document.myform.wort.value;

var n=wort.length;

for (var i=0; i<n; i++) {

c=wort.charAt(i);

z=alpha.indexOf(c);

alpha=alpha.substring(0,z)+alpha.substring(z+1,26-i);

}

na=alpha.length;

schluessel=alpha.substring(na-zahl,na)+wort+alpha.substring(0,26-n-zahl);

document.myform.schluessel.value=schluessel;

}



function verschluesseln() {

var c,z;

var ein = document.myform.klartext.value;

var schluessel=document.myform.schluessel.value;

var n=ein.length;

var aus="";

for (var i=0; i<n; i++) {

c=ein.charAt(i);

z=alphabet.indexOf(c);

x=schluessel.charAt(z);

aus=aus+x;

}

document.myform.geheimtext.value=aus;

}



function entschluesseln() {

var c,z;

var ein = document.myform.geheimtext.value;

var n=ein.length;

var aus="";

for(var i=0; i<n; i++) {

c=ein.charAt(i);

z=schluessel.indexOf(c);

aus=aus+alphabet.charAt(z);

}

document.myform.klar.value=aus;

}

--></script>


hier der code, hoffe mir kann jemand helfen.

MFG
Hell
 
Guten Abend

Zuersteinmal: das Forum bietet sowas tolles wie Code-Tags ;)

Ich habe mir deinen Code mal angesehen. In der Funktion entschluesseln hast du vergessen "schluessel" einen
Wert zuzuweisen, und in der letzten Anweisung "klar" anstelle von "klartext" geschrieben, weswegen sie wahrscheinlich nicht funktionierte.

Aber zu deiner Frage:
Da ja nur Buchstaben verschluesselt werden, ist es am einfachsten alle anderen Zeichen zu übergehen, also sie unverschlüsselt wieder auszugeben.

Ich habe das ganze mal kurz zusammengeschustert:

Code:
<html>
<body>
<script language=JavaScript><!--

var alphabet = "abcdefghijklmnopqrstuvwxyz";

var schluessel;

function erzeugen()
{
	var alpha=alphabet;
	var zahl=document.myform.zahl.value;
	var wort=document.myform.wort.value;
	var n=wort.length;

	for(var i=0; i<n; i++)
	{
		c=wort.charAt(i);
		z=alpha.indexOf(c);
		alpha=alpha.substring(0,z)+alpha.substring(z+1,26-i);
	}
	na=alpha.length;
	schluessel=alpha.substring(na-zahl,na)+wort+alpha.substring(0,26-n-zahl);
	document.myform.schluessel.value=schluessel;
}



function verschluesseln()
{
	var c,z;
	var ein = document.myform.klartext.value;
	var schluessel=document.myform.schluessel.value;
	var n=ein.length;
	var aus="";

	for(var i=0; i<n; i++)
	{
		c=ein.charAt(i);
		z=alphabet.indexOf(c);
		if(z<0)     //"Nicht-Buchstaben" übergehen
			aus=aus+c;
		else
		{
			x=schluessel.charAt(z);
			aus=aus+x;
		}
	}
	document.myform.geheimtext.value=aus;
}



function entschluesseln()
{
	var c,z;
	var ein = document.myform.geheimtext.value;
	var n=ein.length;
	var schluessel=document.myform.schluessel.value;
	var aus="";
	for(var i=0; i<n; i++)
	{
		c=ein.charAt(i);
		z=schluessel.indexOf(c);
		if(z<0)    //"Nicht-Buchstaben" übergehen
			aus=aus+c;
		else
			aus=aus+alphabet.charAt(z);
	}
	document.myform.klartext.value=aus;
}

--></script>
<form name=myform>
<table>
<tr><td>Zahl:</td><td><input type=text name=zahl></td></tr>
<tr><td>Wort:</td><td><input type=text name=wort></td></tr>
<tr><td>Schluessel:</td><td><input type=text name=schluessel></td></tr>
<tr><td>Klartext:</td><td><textarea rows=5 cols=20 name=klartext></textarea></td></tr>
<tr><td>Geheimtext:</td><td><textarea rows=5 cols=20 name=geheimtext></textarea></td></tr>
</table>
<input type=button value=erzeugen onclick="erzeugen()">
<input type=button value=verschluesseln onclick="verschluesseln()">
<input type=button value=entschluesseln onclick="entschluesseln()">
</body>
</html>

mfg, loose
 
Zurück
Oben