Wie kann ich printf ( „% c“, M) übersetzen; von C für meinen DEN Implementierung in Java?

StackOverflow https://stackoverflow.com/questions/476576

  •  20-08-2019
  •  | 
  •  

Frage

Ich bin ein deutscher Student und für Computer-Klassen Ich brauche die DES-Verschlüsselung in Java zu implementieren (von mir selbst, nicht durch den Java-API) und erkläre, es im Detail. Ich fand keine Java-Code-Beispiele mit Google, aber I eine einfache Implementierung in C das finden. (Ich weiß nicht, C, ich weiß, ein wenig C ++, aber nicht so gut, Zeiger mich noch jetzt und dann.)

So habe ich versucht, einfach den Code von C nach Java Umwandlung, die etwa auf halber Strecke tat trainieren, aber ich habe ein Problem mit dem letzten Teil, vor allem mit dem Beispiel mit:

printf("%c",M);

Welche, von dem, was Google hat mir gesagt, scheint Zahlen (Integer) in ASCII-Zeichen zu konvertieren, aber ich bin nicht wirklich sicher. Mein Code scheint bis zu diesem letzten Teil zu arbeiten, so würde ich für jeden dankbar sein, die mich fix / Tip geben können.

Mein Code:

import java.util.Scanner;

public class DES {

    /**
     * @param args
     */
    public static void main(String[] args) {

        Scanner eingabe = new Scanner(System.in);

        int p, q, key2, fn, encryption_key, temp1 , temp2 ,
            t, s =0 , privatekey1=1, b=0 , passwort_s=0, klartext;
        int[] Cipher = new int [100];
        String passwort;

        System.out.println("Enter the value of p and q");

        p = eingabe.nextInt();
        q = eingabe.nextInt();

        System.out.println(p);
        System.out.println(q);

        key2= p*q;


        fn=(p-1)*(q-1);
        System.out.println("Enter Enryption key e: ");
        encryption_key = eingabe.nextInt();

        do {

            s=(privatekey1*encryption_key)%fn;
            privatekey1++; 

        } while (s!=1); 

        privatekey1=privatekey1-1;



        System.out.println("Public Key : "+ encryption_key + ","+ key2 );
        System.out.println("Private Key: "+ privatekey1 + "," +key2 );
        System.out.println("Enter Message: ");
        passwort= eingabe.next();
        for ( temp2 = 0; temp2 < passwort.length(); temp2++) 
        {
            t = passwort.charAt(temp2);
            passwort_s=1;
            for(temp1 =0 ; temp1< encryption_key ; temp1++){
                passwort_s= passwort_s*t%key2;
            }
            passwort_s= passwort_s%key2;
            System.out.println(passwort_s);
        }

        System.out.println("Enter cipher Text: ");
        for(temp1=0;temp1< passwort.length(); temp1++ )
        {
            Cipher[temp1]= eingabe.nextInt();
        }

        System.out.println("Plainttext: ");
        for(temp2 =0; temp2 < passwort.length(); temp2++);
        {
            klartext=1;

            for(temp1 =0; temp1 < privatekey1; temp1 ++){
                klartext=klartext*Cipher[temp2]%key2;
            }
            klartext=klartext%key2;
            System.out.println(klartext);
        }
    }
}

Wie kann ich konvertieren die

printf("%c",M);

auf Java, und das ist dann eine vollständige DIE Implementierung?

War es hilfreich?

Lösung

Es ist spät und ich bin müde, aber dies ist kein DER Implementierung ist es?

Es sieht eher aus wie RSA .

Ja die Verbindung zu Ihrem Beitrag ist ein asymmetrisches Kryptosystem. DES ist symmetrisch.

Andere Tipps

Oder prägnanter:

output.print((char)M);

Dies setzt voraus, M ein numerischer Wert ist ein ASCII-Zeichen 0-127 (oder eine ISO-8859-1 0-255, oder ein Unicode-Zeichen 0-65535) darstellt.

Es setzt außerdem voraus Ausgang ein Printwriter oder Print ist, von denen eine System.out (a Outputstream leicht durch eine PrintOutputStream gewickelt ist, oder Printwriter (new Output)).

Des ist eigentlich ein ziemlich harte algotrithm Kopf herum zu erhalten. Ich wollte darüber bloggen, aber wenn ich grub nach unten. Ich kann es nicht in Stücke bricht Ich war zufrieden mit.

Hier ist, wie sehr roughtly DES funktioniert.

  1. Wählen Sie ein 64-Bit-Schlüssel. (Wegzuwerfen 8bits)
  2. Für jeden 64-Bit-Block in zwei Hälften geteilt
  3. Sie einige xor basierend perumutation basierend auf Unterschlüssel genererated und gleich auf die andere Hälfte tun.
  4. Sie einige der Substitution.
  5. Sie mehr permutatation

Lauf in umgekehrter Zahl entschlüsselt werden.

* Dies ist eine grobe Vereinfachung.

Dieses Programm ist für RSA-Algorithmus und nicht für DEN. DES-Code ist 8-mal größer ist als RSA:)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top