Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Qrevo Curv 2 Flow è l'ultima novità di casa Roborock per la pulizia di casa: un robot completo, forte di un sistema di lavaggio dei pavimenti basato su rullo che si estende a seguire il profilo delle pareti abbinato ad un potente motore di aspirazione con doppia spazzola laterale
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Abbiamo guidato per diversi giorni la Alpine A290, la prima elettrica del nuovo corso della marca. Non è solo una Renault 5 sotto steroidi, ha una sua identità e vuole farsi guidare
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Abbiamo provato a fondo il nuovo Magic 8 Lite di HONOR, e per farlo siamo volati fino a Marrakech , dove abbiamo testato la resistenza di questo smartphone in ogni condizione possibile ed immaginabile. Il risultato? Uno smartphone praticamente indistruttibile e con un'autonomia davvero ottima. Ma c'è molto altro da sapere su Magic 8 Lite, ve lo raccontiamo in questa recensione completa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 13-12-2008, 23:31   #1
Miky Mouse
Senior Member
 
L'Avatar di Miky Mouse
 
Iscritto dal: Mar 2002
Città: Roma
Messaggi: 4205
[JAVA] problema generazione chiave Diffie-Hellman

ho un client e un server che si scambiano (o dovrebbero scambiarsi) dati cifrati con DES... questo è quello che c'è prima, per generare una chiave.
solo che non funziona, anche se mi sono attenuto alla documentazione la doPhase solleva eccezione di InvalidKey dicendo che il parametro non è corretto.
ho ricontrollato ma non sembra un problema di trasmissione di dati, qualcuno potrebbe dirmi se il codice è corretto? (è preso in giro sul web e documentazioni varie)
il codice su client e server è lo stesso, questi si scambiano un oggetto serializzato con all'interno una variabile di tipo PublicKey (qui sotto ho semplificato il codice del send/receive tanto per far capire).
per ora mi basterebbe di stampare la chiave ottenuta...

Codice:
private void DiffieHellman(){

		String valuesInStr=genDHParams();
		String[] values = valuesInStr.split(",");
		BigInteger p = new BigInteger(values[0]);
		BigInteger g = new BigInteger(values[1]);
		int l = Integer.parseInt(values[2]);
		try {
			// Use the values to generate a key pair
			KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DH");
			DHParameterSpec dhSpec = new DHParameterSpec(p, g, l);
			keyGen.initialize(dhSpec);
			KeyPair keypair = keyGen.generateKeyPair();

			// Get the generated public and private keys
			PrivateKey privateKey = keypair.getPrivate();
			PublicKey publicKey = keypair.getPublic();

			// Send the public key bytes to the other party...
			stream.writeObject(new Pacchetto(publicKey));

			// Retrieve the public key bytes of the other party
			Pacchetto pacchetto=(PublicKey)stream.readObject();
                        publicKey=pacchetto.publicKey;

			// Prepare to generate the secret key with the private key and public key of the other party
			KeyAgreement ka = KeyAgreement.getInstance("DH");
			ka.init(privateKey);
			ka.doPhase(publicKey, true);
			// Specify the type of key to generate;
			// see e458 Listing All Available Symmetric Key Generators
			String algorithm = "DES";

			// Generate the secret key
			SecretKey secretKey = ka.generateSecret(algorithm);

			// Use the secret key to encrypt/decrypt data;
			// see e462 Encrypting a String with DES
			System.out.println( "chiave calcolata "+secretKey.toString());

		} 
		catch (InvalidKeyException e) {System.out.println(e.toString());} 
		catch (InvalidAlgorithmParameterException e) {System.out.println(e.toString());
		} catch (NoSuchAlgorithmException e) {System.out.println(e.toString());
		} catch (IOException ex){	System.out.println(ex.toString());
		} catch (ClassNotFoundException ex){System.out.println(ex.toString());
		}
	}
	private static String genDHParams() {
		try {
			// Create the parameter generator for a 1024-bit DH key pair
			AlgorithmParameterGenerator paramGen = AlgorithmParameterGenerator.getInstance("DH");
			paramGen.init(1024);

			// Generate the parameters
			AlgorithmParameters params = paramGen.generateParameters();
			DHParameterSpec dhSpec
			= (DHParameterSpec)params.getParameterSpec(DHParameterSpec.class);

			// Return the three values in a string
			return ""+dhSpec.getP()+","+dhSpec.getG()+","+dhSpec.getL();
		} catch (NoSuchAlgorithmException e) {
		} catch (InvalidParameterSpecException e) {
		}
		return null;
	}
__________________
| Il mio blog |
Miky Mouse è offline   Rispondi citando il messaggio o parte di esso
Old 15-12-2008, 12:36   #2
Miky Mouse
Senior Member
 
L'Avatar di Miky Mouse
 
Iscritto dal: Mar 2002
Città: Roma
Messaggi: 4205
up...
__________________
| Il mio blog |
Miky Mouse è offline   Rispondi citando il messaggio o parte di esso
Old 15-12-2008, 16:18   #3
Miky Mouse
Senior Member
 
L'Avatar di Miky Mouse
 
Iscritto dal: Mar 2002
Città: Roma
Messaggi: 4205
risolto... se a qualcuno interessa il problema è che i parametri g,p,l usati per generare la chiave devono essere uguali sul client e sul server... come facevo io invece venivano generati diversamente
__________________
| Il mio blog |
Miky Mouse è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Roborock Qrevo Curv 2 Flow: ora lava con un rullo Roborock Qrevo Curv 2 Flow: ora lava con un rull...
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite Alpine A290 alla prova: un'auto bella che ti fa ...
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile Recensione HONOR Magic 8 Lite: lo smartphone ind...
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Nasce Freedom.gov: il portale USA per ag...
Bose QuietComfort SC a 179,95€: ANC legg...
Attenzione ai conti: confermata falla sf...
30.000 Pa e lavaggio a 100°C: DREAME...
Nioh 3 vola oltre 1 milione di copie, la...
AMD Radeon RX 9060 XT: staccato (di molt...
WhatsApp introduce la condivisione della...
iPad con chip A16 a 339€: l'11'' con 128...
OpenClaw spaventa le aziende: perch&eacu...
Samsung T7 2TB crolla su Amazon: SSD por...
Tutte le JBL a prezzi da non perdere su ...
PS6 e RDNA 5: la GPU sarà 'quasi ...
Meta cambia rotta sul metaverso: Horizon...
Zeekr debutta in Italia con Jameel Motor...
Robotaxi sotto controllo remoto: Waymo a...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 16:04.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v