Night82
27-07-2006, 17:22
Mi sto esercitando con RSA e JAVA. Con questo codice volevo cifrare la frase "Frase da cifrare!" e poi decifrarla ma mi risulta tutta un'altra cosa. Cosa sbaglio?
import java.security.*;
import javax.crypto.*;
import java.security.spec.*;
public class Mio{
public static void main(String[] args) throws Exception{
KeyPairGenerator kpg=null;
kpg = KeyPairGenerator.getInstance("RSA");
kpg.initialize(1024);
KeyPair kp = kpg.generateKeyPair();
PublicKey pubblica=kp.getPublic();
PrivateKey privata=kp.getPrivate();
String s=new String("Frase da cifrare!");
byte[] b=s.getBytes();
//CODIFICA
Cipher c=null;
byte[] encodeFile=null;
c = Cipher.getInstance("RSA/ECB/PKCS1Padding");
c.init(Cipher.ENCRYPT_MODE, pubblica);
encodeFile = c.doFinal(b);
//DECODIFICA
Cipher cc=null;
byte[] plainFile=null;
cc = Cipher.getInstance("RSA/ECB/PKCS1Padding");
cc.init(Cipher.DECRYPT_MODE, privata);
plainFile = cc.doFinal(encodeFile);
String dec=plainFile.toString();
System.out.println("Frase decodificata: "+dec);
}
}
import java.security.*;
import javax.crypto.*;
import java.security.spec.*;
public class Mio{
public static void main(String[] args) throws Exception{
KeyPairGenerator kpg=null;
kpg = KeyPairGenerator.getInstance("RSA");
kpg.initialize(1024);
KeyPair kp = kpg.generateKeyPair();
PublicKey pubblica=kp.getPublic();
PrivateKey privata=kp.getPrivate();
String s=new String("Frase da cifrare!");
byte[] b=s.getBytes();
//CODIFICA
Cipher c=null;
byte[] encodeFile=null;
c = Cipher.getInstance("RSA/ECB/PKCS1Padding");
c.init(Cipher.ENCRYPT_MODE, pubblica);
encodeFile = c.doFinal(b);
//DECODIFICA
Cipher cc=null;
byte[] plainFile=null;
cc = Cipher.getInstance("RSA/ECB/PKCS1Padding");
cc.init(Cipher.DECRYPT_MODE, privata);
plainFile = cc.doFinal(encodeFile);
String dec=plainFile.toString();
System.out.println("Frase decodificata: "+dec);
}
}