Hejsan
Hur ska jag göra om jag vill göra en sida där jag skriver in t.ex. hej och det kommer ut som ifk. Alltså att alla bokstäver förflyttas en ner i alfabetet. Jag hade tänkt mig en sida där det är två <form>s. Ett där man skriver in ordet som ska chiffras och ett, kanske med READONLY taggen, där det kommer ut chiffrat.
Hur löser jag detta? Tänkte någonting i en function(JS) i första <form>en som riktar sig mot den andra <form>en.
Tacksam för alla svar.
mvh Ozzan
Enkelt chiffer
5 svar · 467 visningar · startad av ozzan
Ingen aning.. Men här har du hur man gör om det till rövarspråket.
http://hem.passagen.se/daan9130/portfolio/js_dhtml/oversattareVER1/index.html
<script type="text/javascript">
var charsLower = "abcdefghijklmnopqrstuvwxyzåäö";
var charsUpper = "ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ";
function chiffrera(objFrom, objTo){
var strFrom = objFrom.value;
var strTo = "";
var currChar;
for(var i=0; i<strFrom.length; i++){
currChar = strFrom.charAt(i);
if(charsLower.indexOf(currChar)!=-1)
strTo += charsLower.charAt((charsLower.indexOf(currChar)==28)?0:charsLower.indexOf(currChar)+1);
else if(charsUpper.indexOf(currChar)!=-1)
strTo += charsUpper.charAt((charsUpper.indexOf(currChar)==28)?0:charsUpper.indexOf(currChar)+1);
else
strTo += currChar;
}
objTo.value = strTo;
}
</script>
...
<form>
Från:<br />
<textarea name="from"></textarea><br />
Till:<br />
<textarea name="to"></textarea><br />
<br />
<input type="button" onclick="chiffrera(this.form.from, this.form.to)" value="Chiffrera" />
</form>
Det kan förmodligen göras enklare, men detta fungerar iaf.
Uppdaterat:
<script type="text/javascript">
var charsLower = "abcdefghijklmnopqrstuvwxyzåäö";
var charsUpper = "ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ";
function chiffrera(objFrom, objTo, objOffset){
var strFrom = objFrom.value;
var offset = parseInt(objOffset.value) || 0;
var strTo = "";
var currChar, charOffset;
for(var i=0; i<strFrom.length; i++){
currChar = strFrom.charAt(i);
if(charsLower.indexOf(currChar)!=-1)
strTo += charsLower.charAt((charsLower.length+(charsLower.indexOf(currChar)+offset))%charsLower.length);
else if(charsUpper.indexOf(currChar)!=-1)
strTo += charsUpper.charAt((charsLower.length+(charsUpper.indexOf(currChar)+offset))%charsUpper.length);
else
strTo += currChar;
}
objTo.value = strTo;
}
</script>
...
<form>
Från:<br />
<textarea name="from"></textarea><br />
Till:<br />
<textarea name="to"></textarea><br />
<br />
<input type="button" onclick="chiffrera(this.form.from, this.form.to, this.form.offset)" value="Chiffrera" />
<input type="text" name="offset" />
</form>
Nu kan du själv ange hur många tecken alfabetet ska förskjutas. Negativa värden är tillåtna.
Hmm, Det låter bra det! Men kan man göra så att det finns två knappar? En som chiffrar och en som dechiffrar.. Föresten går det på nåt enkelt sätt att göra så att även siffrorna förskjuts?
<script type="text/javascript">
var charsLower = "abcdefghijklmnopqrstuvwxyzåäö";
var charsUpper = "ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ";
function chiffrera(objFrom, objTo, objOffset){
var strFrom = objFrom.value;
var strTo = "";
var currChar, charOffset, numOffset, offset;
offset = parseInt(objOffset.value) || 0;
charOffset = numOffset = offset;
while(charOffset<0)
charOffset += charsLower.length;
while(numOffset<0)
numOffset += 10;
for(var i=0; i<strFrom.length; i++){
currChar = strFrom.charAt(i);
if(charsLower.indexOf(currChar)!=-1)
strTo += charsLower.charAt((charsLower.length+(charsLower.indexOf(currChar)+charOffset))%charsLower.length);
else if(charsUpper.indexOf(currChar)!=-1)
strTo += charsUpper.charAt((charsLower.length+(charsUpper.indexOf(currChar)+charOffset))%charsUpper.length);
else if(/\d/.test(currChar))
strTo += (numOffset+parseInt(currChar))%10;
else
strTo += currChar;
}
objTo.value = strTo;
}
</script>
...
<form>
Från:<br />
<textarea name="from"></textarea><br />
Till:<br />
<textarea name="to" readonly="readonly"></textarea><br />
<br />
<input type="button" onclick="chiffrera(this.form.from, this.form.to, this.form.offset)" value="Chiffrera" />
<input type="text" name="offset" />
</form>
Om du vill dechiffrera något är det bara att skriva -1*nyckeln i rutan bredvid Chiffrera-knappen.
Om du förskjutet alfabetet 2 steg skriver du alltså istället -2 för att dechiffrera.