بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
حبيت اسألكم عن برنامجي انو اليوزر يدخل الcreditcard no ويشفره بالمفتاح السري عن طريق DES ونشفر المفتاح السري والرساله بالpublic key
ونرسله لكلاس server بملف txt ونفك تشفير بprivate key وبعدين نفك تشفير الcredit card number بالمفتاح السري
طبعا حيكون عندي ملفين public.txt وprivate.txt نخزن فيهم المفتاحين العام والخاص طبعا كان عندي كذا سؤال
بدايه بكود server
1-كيف اخزن المفتاحين كل واحد بملف واناديهم مره ثانيه في الكلاسserver
/**
* @(#)Text2.java
*
*
* @author
* @version 1.00 2010/4/13
*/
import java.security.*;
import java.util.Scanner;
import java.io.*;
public class Server {
public static void main(String [] args)throws Exception {
//Create the KeyPair then store public key in File1 and private key in File2.
KeyPairGenerator generator =KeyPairGenerator.getInstance("RSA");
generator.initialize(1024);
KeyPair myPair=generator.generateKeyPair();
myPair.getPublic();
myPair.getPrivate();
}
public String decrypt(encrypted key,encrypted cardNo){
// Get private key from File2
// Create asymmetric cipher (RSA)
Cipher c=Cipher.getInstance("RSA");
//Initialize cipher for decryption with private key
c.init(Cipher.ENCRYPT_MODE,myPair.getPrivative());
// Decrypt symmetric key
//Create symmetric cipher
//Initialize Cipher for decryption with symmetric key
//Decrypt credit card number with symmetric Cipher
//Print on the screen the decrypted credit card and the decrypted key
}
}وكود الclient
non-static method encrypt(java.lang.String) cannot be referenced from a static context
cannot find symbol method init(int,java.io.BufferedReader)
هذي هي الاخطاء اللي طلعتلي فيه
/**
* @(#)Text1.java
*
*
* @author
* @version 1.00 2010/4/13
*/
import javax.crypto.*;
import java.security.*;
import java.util.Scanner;
import java.io.*;
public class Client {
public static void main(String[] args){
String cardNo=new String();
Scanner scan=new Scanner(System.in);
System.out.println("Enter your credit card number :");
cardNo =scan.nextLine();
encrypt(cardNo);
}
private void encrypt(String cardNo){//create cipher
Cipher c=Cipher.getInstance("DES");
// generate the key
KeyGenerator kg=KeyGenerator.getInstance("DES");
Key sKey =kg.generateKey();
// Initialize cipher for encryption with session key
c.init(Cipher.ENCRYPT_MODE,sKey);
//Encrypt credit card number with cipher
byte[] encyptsbytes=c.doFinal(cardNo.getBytes());
//Get public key from File1
FileInputStream f =new FileInputStream("public.txt");
DataInputStream d =new DataInputStream (f);
InputStreamReader I= new InputStreamReader (d);
BufferedReader b=new BufferedReader(I);
// Create cipher for asymmetric encryption (RSA)
Cipher c2=Cipher.getInstance("RSA");
//Initialize cipher for encryption with public key
c2.init(Cipher.ENCRYPT_MODE,b);
// Encrypt symmetric key
//??
byte[] encyptr=c.doFinal(encyptsbytes);
// Save encrypted credit card number and session key to File3
FileWriter f0=new FileWriter("file3.txt");
for(int i=0;i<encyptr.length;i++){
f0.write(encyptr);}
f0.close();
}
}ياريت احــــــــــــد يشرحلي ويعلمني ايش الاخطاء اللي وقعت فيها لأنو صراحه احس الفكره معقده
وجزيتم خيرا
