私はドイツ人の学生です。コンピュータクラスの場合、JavaでDES暗号化を実装し(Java-APIを使用するのではなく、自分で)、詳細に説明する必要があります。googleを使用したJavaコードの例は見つかりませんでしたが、Cで簡単に実装できました。(私はCを知りません、私は少しC ++を知っていますが、それほどよくはありません、ポインターはまだ時々私を取得します。)
そこで、コードをCからJavaに変換しようとしましたが、途中でうまくいきましたが、最後の部分、特に次の例を使用すると問題が発生します。
printf("%c",M);
これは、Googleが私に言ったことから、数値(整数)をASCII文字に変換しているようですが、私にはよくわかりません。私のコードはその最後の部分まで機能しているようですので、私に修正/ヒントを与えることができる人に感謝します。
私のコード:
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);
}
}
}
どうすれば変換できますか
printf("%c",M);
Javaに、そしてこれは完全なDES実装ですか?