Avatar billede mcquade Nybegynder
25. oktober 2003 - 09:30 Der er 50 kommentarer og
1 løsning

nogle der kan lave et lille krypteringsprogram til mig

jeg ville høre om der var en der ville lave et lille program til mig i java.

det et krypteringsprogram der skal kunne oversætte fra en tekst til en anden , og hvor man kan sætte en nøgle ind, efter hvad nøgle det er rykker A fra normal plads og så X antal tilbage ..

et lille eksempel hvor 3 er nøglen ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ
DEFGHIJKLMNOPQRSTUVWXYZÆØÅABC

eksempel nr 2 : nøgletallet er 6
ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ
GHIJKLMNOPQRSTUVWXYZÆØÅABCDEF

jeg vil gerne selv kunne sætte nøglen ind og derefter teksten jeg skal kryptere og derefter lade den kryptere det :)

er dette for svært og lave el er der en der vil?
Avatar billede arne_v Ekspert
25. oktober 2003 - 10:10 #1
public class EncDec {
    public static String encrypt(String s, int key) {
        StringBuffer sb = new StringBuffer("");
        for(int i = 0; i < s.length(); i++) {
            sb.append((char)(s.charAt(i) + key));
        }
        return sb.toString();
       
    }
    public static String decrypt(String s, int key) {
        StringBuffer sb = new StringBuffer("");
        for(int i = 0; i < s.length(); i++) {
            sb.append((char)(s.charAt(i) - key));
        }
        return sb.toString();
       
    }
    public static void main(String[] args) {
        System.out.println(encrypt("ABC", 3));
        System.out.println(decrypt("DEF", 3));
    }
}
Avatar billede arne_v Ekspert
25. oktober 2003 - 10:11 #2
Bemærk den kode bruger ikke et 29 bogstavs alfabet men et
fuldt karakter sæt.
Avatar billede arne_v Ekspert
25. oktober 2003 - 10:17 #3
Med et 29 bogstavers alfabet ser det ud som:

public class EncDec29 {
    private final static String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ";
    public static String encrypt(String s, int key) {
        StringBuffer sb = new StringBuffer("");
        for(int i = 0; i < s.length(); i++) {
            sb.append(alphabet.charAt((alphabet.indexOf(s.charAt(i)) + key) % alphabet.length()));
        }
        return sb.toString();
       
    }
    public static String decrypt(String s, int key) {
        StringBuffer sb = new StringBuffer("");
        for(int i = 0; i < s.length(); i++) {
            sb.append(alphabet.charAt((alphabet.indexOf(s.charAt(i)) + alphabet.length() - key) % alphabet.length()));
        }
        return sb.toString();
       
    }
    public static void main(String[] args) {
        System.out.println(encrypt("ABCÆØÅ", 3));
        System.out.println(decrypt("DEFABC", 3));
    }
}
Avatar billede mcquade Nybegynder
25. oktober 2003 - 12:54 #4
arne, øhm jeg har ik forstand på java så ved ik helt hvordan jeg gør det færdig ?? eller hva man nu gør ...?
Avatar billede arne_v Ekspert
25. oktober 2003 - 13:28 #5
Du vil have det lavet "færdig til brug" ?

Hvordan skal det fungere ?

java EncDec29 input.txt 3 output.txt

?

eller:

java EncDec29
Enter key> 3
Enter input text> ABC
DEF

?
Avatar billede mcquade Nybegynder
25. oktober 2003 - 13:41 #6
arne, ja meget gerne færdig da jeg INTET forstand har på java :/
hvad er forskellen på de 2 script´s og hvad er forskællen mellem hvordan de funger? :)
Avatar billede arne_v Ekspert
25. oktober 2003 - 13:51 #7
Det første konverterer ÆØÅ til ÉÛÈ.

Det første konverterer ÆØÅ til ABC.
Avatar billede arne_v Ekspert
25. oktober 2003 - 13:55 #8
Du kender ikke Java - har du Java installeret så du kan compile programmet
og køre det ?
Avatar billede mcquade Nybegynder
25. oktober 2003 - 14:06 #9
jeg har et freeware program fra sun ved navn JavaMaker v0.1 ...
det skal være det somm konverterer ÆØÅ til ABC. :)
men kan man lave det så man selv kan bestemme om "A" i klarteksten(ik krypterede tekst) er D eller J eller P i den krypterede tekst ..
og selv vælge sit nøgletal :)
Avatar billede mcquade Nybegynder
25. oktober 2003 - 14:16 #10
når jeg compiler det får jeg afvide : illegal path! "c\bin\javac.exe"
Avatar billede arne_v Ekspert
25. oktober 2003 - 14:24 #11
Det er det som key (som er 3 i alle mine eksempler) bestemmer.
Avatar billede arne_v Ekspert
25. oktober 2003 - 14:25 #12
Hvorfor henter du ikke fuld Java SDK ?

Så bør det compile uden problemer.
Avatar billede arne_v Ekspert
25. oktober 2003 - 14:26 #13
Avatar billede mcquade Nybegynder
25. oktober 2003 - 14:44 #14
ja ved godt at hvis man bruger key 3 rykker den 3 pladser fra A , og hvis man bruger key 8 rykker den 8 pladser fra A
men kan ik komme til og vælge keys udgangspunkt selv..

feks: man bruger key 3 men har udgangspunkt ved D i stedet for A
Avatar billede arne_v Ekspert
25. oktober 2003 - 16:03 #15
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class EncDecUtil {
    private final static String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ";
    public static String encrypt(String s, int key) {
        StringBuffer sb = new StringBuffer("");
        for(int i = 0; i < s.length(); i++) {
            sb.append(alphabet.charAt((alphabet.indexOf(s.charAt(i)) + key) % alphabet.length()));
        }
        return sb.toString();
       
    }
    public static String decrypt(String s, int key) {
        StringBuffer sb = new StringBuffer("");
        for(int i = 0; i < s.length(); i++) {
            sb.append(alphabet.charAt((alphabet.indexOf(s.charAt(i)) + alphabet.length() - key) % alphabet.length()));
        }
        return sb.toString();
       
    }
    public static void main(String[] args) {
        try {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            System.out.print("Enter E(decrypt) or D(ecrypt): ");
            String mode = br.readLine();
            System.out.print("Enter key: ");
            int key = Integer.parseInt(br.readLine());
            System.out.print("Enter string: ");
            String s = br.readLine();
            if(mode.charAt(0) == 'E') {
                System.out.println(encrypt(s, key));
            } else if(mode.charAt(0) == 'D') {
                System.out.println(decrypt(s, key));
            }
        } catch (NumberFormatException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Avatar billede arne_v Ekspert
25. oktober 2003 - 16:03 #16
Enter E(decrypt) or D(ecrypt): E
Enter key: 8
Enter string: ABC
IJK
Avatar billede arne_v Ekspert
25. oktober 2003 - 16:04 #17
Enter E(decrypt) or D(ecrypt): D
Enter key: 8
Enter string: IJK
ABC
Avatar billede mcquade Nybegynder
25. oktober 2003 - 16:09 #18
arne, har du ik msn eller icq? for fatter minus lige nu :(
Avatar billede arne_v Ekspert
25. oktober 2003 - 16:11 #19
Ingen af delene.

Jeg er så gammel, at jeg kun bruger email.
Avatar billede mcquade Nybegynder
25. oktober 2003 - 16:19 #20
arne okay :D *LOL* øhm jeg prøver og forklare :)
jeg tager dit script og gemmmer det som kryptering.java og åbner det i java og compiler det ? eller hvad? ..
det der "import java.io.BufferedReader;
        import java.io.IOException;
        import java.io.InputStreamReader;" er det noget jeg skal importer til java eller?

øhm når jeg har compilet skulle programmet så virke? :o.
Avatar billede arne_v Ekspert
25. oktober 2003 - 16:29 #21
Det skal gemmes som EncDecUtil.java (fordi public class name og fil
navn skal matche).

Og compiles med:

javac EncDecUtil.java
Avatar billede arne_v Ekspert
25. oktober 2003 - 16:29 #22
Og compileren klarer selv de import.
Avatar billede mcquade Nybegynder
25. oktober 2003 - 16:59 #23
øhm fatter virkelig minus af det her... jeg prøver lige og fortælle hvad jeg haar gjort step by step
1. tog dit script og gemte det i notebook
2. gemte det med filnavn "EncDecUtil.java"
3. create new wizard i netbeans IDE 3.5.1 og her kommer mit problem:
den ber mig om choose template , men ved ik hvad jeg skal vælge der??
og efter det kommer target location her
C:\Documents and Settings\Administrator\.netbeans\3.5\sampledir
kan det passe ?  og skal jeg derefter compile???
Avatar billede arne_v Ekspert
25. oktober 2003 - 17:03 #24
Du kan vælge:
  Java Classes
  Java Main Class
Avatar billede arne_v Ekspert
25. oktober 2003 - 17:03 #25
Altså som template.
Avatar billede arne_v Ekspert
25. oktober 2003 - 17:03 #26
Men jeg ville såmænd bare have compilet det command line i en DOS box.
Avatar billede jelzin101 Praktikant
25. oktober 2003 - 17:04 #27
Avatar billede mcquade Nybegynder
25. oktober 2003 - 17:18 #28
øhm når den har compilet det sQ den så ik gemme programmet i target location: "C:\Documents and Settings\Administrator\.netbeans\3.5\sampledir"
eller mangler jeg noget? :)
Avatar billede mcquade Nybegynder
25. oktober 2003 - 17:45 #29
nu har jeg på en eller anden måde få det lavet , det hedder"EncDecUtil Java(tm) File (NetBeans IDE)" kan det passe...?
men når jeg åbner det åbner den det jo i java script stadigt... ?
skal den det?? :)
Avatar billede arne_v Ekspert
25. oktober 2003 - 17:45 #30
Ligger der ikke en EncDecUtil.class fil ?
Avatar billede mcquade Nybegynder
25. oktober 2003 - 19:55 #31
arne,jaa det gør der ..
hvad skal den åbnes med ? ? :) og er det så mit program?
eller skal man gøre mere??
Avatar billede mcquade Nybegynder
25. oktober 2003 - 19:56 #32
du må sige til hvis du skal ha flere point for alt den hjælp arne :)
Avatar billede arne_v Ekspert
25. oktober 2003 - 20:18 #33
Hvis du åbner en DOS box, går til det directory og skriver:
  java EncDecUtil
så skulle det gerne køre.

Muligvis skal du:
  \directory-hvor-du-installerede-java\bin\java -classpath . EncDecUtil
Avatar billede mcquade Nybegynder
25. oktober 2003 - 20:22 #34
dos box = kommandopromt ??
Avatar billede arne_v Ekspert
25. oktober 2003 - 20:25 #35
Ja.
Avatar billede mcquade Nybegynder
25. oktober 2003 - 20:46 #36
nu virker det næsten skal bare vide hvilkede program jeg skal køre det i :)
Avatar billede arne_v Ekspert
25. oktober 2003 - 21:03 #37
Øh - det sidste forstod jeg ikke.
Avatar billede mcquade Nybegynder
25. oktober 2003 - 21:06 #38
jamen den kommer med en forspørgelse til hvad browser/program den skal køre class filen fra :)
Avatar billede arne_v Ekspert
25. oktober 2003 - 21:23 #39
Jamen du skal køre den med java.exe programmet.
Avatar billede mcquade Nybegynder
25. oktober 2003 - 21:26 #40
ok det prøver jeg lige :)
Avatar billede mcquade Nybegynder
25. oktober 2003 - 21:30 #41
altså netbeans IDE 3.5.1???
Avatar billede arne_v Ekspert
25. oktober 2003 - 22:00 #42
Du kan godt køre det inde fra NetBeans.

Men du vil vil også kunne køre det udenfor ?
Avatar billede arne_v Ekspert
25. oktober 2003 - 22:02 #43
I NetBeans er det Build+Execute (eller F6) der kører programmet.
Avatar billede mcquade Nybegynder
26. oktober 2003 - 10:41 #44
jeg fatter ik det her.... når jeg åbner EncDecUtil som en class fil i netbeans IDE 3.5.1 og trykker F6 begynder den og compile og kommer med error:
Main.java [5:1] class EncDecUtil is public, should be declared in a file named EncDecUtil.java
public class EncDecUtil {
      ^
1 error
Errors compiling Main.


hvad gør jeg forkert??
Avatar billede arne_v Ekspert
26. oktober 2003 - 10:44 #45
Filen skal hedde det samme som klassen. Main.class duer ikke til
class EncDecUtil - den skal hedde EncDecUtil.java !
Avatar billede mcquade Nybegynder
26. oktober 2003 - 10:46 #46
og en anden ting. kan man ik køre det i et applet???
Avatar billede arne_v Ekspert
26. oktober 2003 - 10:49 #47
Jo men så skal det rettes noget til.

Alt det der bruger System.in og System.out skal rettes til at bruge
AWT eller Swing (afhængig af om du vil bruge Applet eller JApplet).
Avatar billede mcquade Nybegynder
26. oktober 2003 - 10:59 #48
tror bare glemmer det helt for fatter ik det her... :(
men tak for din tålmodighed og din hjælp :)
Avatar billede mcquade Nybegynder
26. oktober 2003 - 12:46 #49
hmm kan man ik lave det, så man kan sende det og så virker det bare med det samme :) Altså bare ved bare og åbne filen uden og skal Alt muligt...?
gir gerne flere point for det... :)
Avatar billede arne_v Ekspert
26. oktober 2003 - 23:03 #50
Dem der skal køre det skal hava Java installeret.

Men man kan godt lave en såkaldt executable jar-fil, så alle med
Java korrekt installeret kan dobbelt-klikke på den.

Interressant ?
Avatar billede mcquade Nybegynder
27. oktober 2003 - 16:18 #51
jeg er ved/har selv lavet et applet så klare mig nu :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester