|
Scritto da Enrico Chiacchiari
|
|
marted́ 11 marzo 2008 |
Questa FAQ spiega come utilizzare RSA con JAVA...
/** * Cifratura asimmetrica * con RSA. * * @author Enrico Chiacchiari * */ public static void main(String[] args){ /** * Stringa che sarà cifrata */ String msg = "Devil (diffidate dalle imitazioni)"; /** * generazione della coppia di chiavi pubblica e privata */ KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA"); kpg.initialize(1024); KeyPair kp = kpg.generateKeyPair(); PublicKey RSAPublicKey = kp.getPublic(); PrivateKey RSAPrivateKey = kp.getPrivate(); System.out.println(RSAPublicKey); /** * Cifratore, prende come parametro la * public key */ Cipher RSACipher = Cipher.getInstance("RSA"); RSACipher.init(Cipher.ENCRYPT_MODE, RSAPublicKey); /** * Cifro col metodo 'doFinal' * avrei potuto utilizzare anche il metodo 'update'. */ byte[] byte_msg_cifrato = RSACipher.doFinal(msg.getBytes()); /** * Decifratore, prende come parametro la * private Key */ RSACipher.init(Cipher.DECRYPT_MODE, RSAPrivateKey); /** * Decifratura */ byte[] byte_msg_decifrato = RSACipher.doFinal(byte_msg_cifrato); String msg_decifrato = new String(byte_msg_decifrato); /** * Semplice controllo, se il messaggio 'msg' (quello iniziale!) * è uguale al msg cifrato e successivamente decifrato.......RSA ha funzionato! */ if (msg_decifrato.equals(msg) == true) System.out.println("I messaggi sono uguali!"); else System.out.println("I messaggi non sono uguali!"); } }
|
|
Ultimo aggiornamento ( marted́ 11 marzo 2008 )
|