[Java] Problem mit JavaScript (verschlüsselung)

Dieses Thema im Forum "Webentwicklung" wurde erstellt von smbdyclldlcs, 7. Juli 2007 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 7. Juli 2007
    Problem mit JavaScript (verschlüsselung)

    Moin zusammen,
    ich bin grade dabei, mit javascript die vigenere-verschlüsselung zu implementieren... so weit bin ich bis jetzt:
    Code:
    <html>
    <head>
    <script language="Javascript">
    function encrypt(){
    var plaintext=document.forms[0].eingabe.value;
    var plain=plaintext.split("");
    var key=document.forms[0].key.value;
    var enckey=key.split("");
    var encrypted="";
    var zuhl=0;
    zuhl=Math.abs(zuhl);
    while(zuhl<plain.length){
    if(plain[zuhl]!=" "){
    plain[zuhl]=plain[zuhl].charCodeAt(0)}
    else{plain[zuhl]=1}
    plain[zuhl]=Math.abs(plain[zuhl]);
    zuhl++;
    }
    var zahl=0;
    zahl=Math.abs(zahl);
    while(zahl<enckey.length){
    enckey[zahl]=enckey[zahl].charCodeAt(0);
    enckey[zahl]=Math.abs(enckey[zahl]);
    zahl++;
    }
    var zohl=0;
    zohl=Math.abs(zohl);
    while(zohl<plain.length){
    if(plain[zohl]!=1){
    plain[zohl]=plain[zohl]+enckey[zohl-(enckey.length*(Math.ceil(zohl/(enckey.length-1))-1))];}
    encrypted=encrypted+plain[zohl]+" ";
    zohl++;
    }
    alert(encrypted);
    document.forms[0].output.value=encrypted;
    }
    </script>
    </head>
    <body>
    <form>
    Schl&uuml;ssel: <input type="text" name="key"><br>
    <textarea name="eingabe" cols="40" rows="20"></textarea><br>
    <input type="button" value="Verschl&uuml;sseln" onclick="encrypt()"><p>
    <textarea name="output" readonly cols="40" rows="20"></textarea><p>
    </form>
    </body>
    </html>
    leider treten noch zwei fehler auf: beim ersten buchstaben kommt immer NaN raus und wenn der zu verschlüsselnde text länger ist als der schlüssel werden alle über den schlüssel hinausgehenden buchstaben ebenfalls zu NaN...
     
  2. 8. Juli 2007
    AW: Problem mit JavaScript (verschlüsselung)

    Soweit ich weiß muss der Schlüssel genauso lang wie der Text sein, man muss also den zu kurzen Schlüssel sooft wiederholen bis er der Textlänge entspricht.

    mfg r90
     
  3. 8. Juli 2007
    AW: Problem mit JavaScript (verschlüsselung)

    Genau das sollte der quelltext auch tun... den key immer wieder wiederholen. nur muss ich da irgendwo einen fehler eingebaut haben, es sind die zeilen:
    Code:
    while(zohl<plain.length){
    if(plain[zohl]!=1){
    plain[zohl]=plain[zohl]+enckey[zohl-(enckey.length*(Math.ceil(zohl/(enckey.length-1))-1))];}
    encrypted=encrypted+plain[zohl]+" ";
    zohl++;
    }
     
  4. 10. Juli 2007
    AW: Problem mit JavaScript (verschlüsselung)

    Hab ne lösung gefunden, hier mein finaler code:
    Code:
    <html>
    <head>
    <script language="Javascript">
    function encrypt(){
    var plaintext=document.forms[0].eingabe.value;
    var plain=new Array
    var key=document.forms[0].key.value;
    var enckey=new Array
    var encrypted="";
    var zahl=Math.abs(0);
    var zuhl=Math.abs(0);
    var zohl=Math.abs(0);
    
    while(zuhl<plaintext.length){
     if(plaintext.charCodeAt(zuhl)!=" "){
     plain[zuhl]=plaintext.charCodeAt(zuhl)}
     else{plain[zuhl]=1}
     plain[zuhl]=Math.abs(plain[zuhl]);
     zuhl++;
     }
    
    while(zahl<key.length){
     enckey[zahl]=key.charCodeAt(zahl);
     enckey[zahl]=Math.abs(enckey[zahl]);
     zahl++;
     }
    
    while(zohl<plain.length){
     if(plain[zohl]!=1){
     if(zohl!=0){
     plain[zohl]=plain[zohl]+enckey[zohl%enckey.length];}
     else{plain[0]=plain[0]+enckey[0];}
     }
     encrypted=encrypted+plain[zohl]+" ";
     zohl++;
     }
    alert(encrypted);
    document.forms[0].output.value=encrypted;
    }
    function decrypt(){
    var encrypted=document.forms[0].eingabe.value;
    var enc=encrypted.split(" ");
    var key=document.forms[0].key.value;
    var enckey=new Array
    var plaintext="";
    var zahl=Math.abs(0);
    var zohl=Math.abs(0);
    while(zahl<key.length){
     enckey[zahl]=key.charCodeAt(zahl);
     enckey[zahl]=Math.abs(enckey[zahl]);
     zahl++;
     }
    while(zohl<enc.length){
     if(enc[zohl]!=1){
     if(zohl!=0){
     enc[zohl]=enc[zohl]-enckey[zohl%enckey.length];}
     else{enc[0]=enc[0]-enckey[0];}
     plaintext=plaintext+String.fromCharCode(enc[zohl]);
     }
     else{ plaintext=plaintext+" "; }
     zohl++;
     }
    alert(plaintext);
    document.forms[0].output.value=plaintext;
    }
    </script>
    </head>
    <body>
    <form>
    Schl&uuml;ssel: <input type="text" name="key"><br>
    <textarea name="eingabe" cols="40" rows="20"></textarea><br>
    <input type="button" value="Verschl&uuml;sseln" onclick="encrypt()"> <input type="button" value="Entschlüsseln" onclick="decrypt()"><p>
    <textarea name="output" readonly cols="40" rows="20"></textarea><p>
    </form>
    </body>
    </html>
     
  5. 14. Juli 2007
    AW: Problem mit JavaScript (verschlüsselung)

    ~ moved & closed ~
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.