Torna indietro   Hardware Upgrade Forum > Software > Programmazione

FRITZ!Repeater 1700 estende la rete super-veloce Wi-Fi 7
FRITZ!Repeater 1700 estende la rete super-veloce Wi-Fi 7
FRITZ!Repeater 1700 porta il Wi-Fi 7 dual-band nelle case connesse. Mette a disposizione fino a 2.880 Mbit/s su 5 GHz e 688 Mbit/s su 2,4 GHz, integrazione Mesh immediata via WPS con FRITZ!Box e funzioni smart come MLO per bassa latenza. Compatto, plug-and-play e pronto per il futuro, è la soluzione ideale per chi vuole coprire ogni angolo senza cavi o complicazioni
Fondazione Chips-IT, l'Italia alla riscossa nei chip. Il piano e la partnership EssilorLuxottica
Fondazione Chips-IT, l'Italia alla riscossa nei chip. Il piano e la partnership EssilorLuxottica
La Fondazione Chips-IT ha presentato a Pavia il piano strategico 2026-2028 per rafforzare l'ecosistema italiano dei semiconduttori. Con un focus su ricerca, design, talenti e infrastrutture, la Fondazione punta a consolidare il ruolo dell'Italia nel Chips Act europeo, sostenendo innovazione, collaborazione industriale e sovranità tecnologica.
Nutanix: innovazione, semplicità e IA al centro della strategia hybrid multicloud
Nutanix: innovazione, semplicità e IA al centro della strategia hybrid multicloud
Al Museo Alfa Romeo di Arese, Nutanix ha riunito clienti, partner ed esperti per .Next On Tour Italia e per mostrare come l’infrastruttura hybrid multicloud possa diventare il fondamento dell’innovazione, con una piattaforma capace di unificare applicazioni tradizionali, moderne architetture cloud-native e nuovi scenari basati sull’intelligenza artificiale
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 14-06-2007, 09:01   #1
pinkMoontwo
Junior Member
 
Iscritto dal: Jan 2007
Messaggi: 3
[JaVa] un piccolo rompicapo!

Salve a tutti!
Volevo esporvi il seguente problema.

Ho un'applicazione client e una server per l'autenticazione, devo fare in modo che la password non viaggi in chiaro, senza però utilizzare il package security di java.

Il procedimento in breve è il seguente :

Il server mi invia una stringa CASUALE di 8 caratteri .. str1;
Il client invia al server una stringa str3 (sempre di 8 caratteri) ottenuta come combinazione di str2 (altra stringa di 8 caratteri in possesso del client, sarebbe una password) e di str1.

Ricapitolando : il client riceve str1 (stringa casuale di 8 caratteri dal server) , la combina con str2 facendo uno xor carattere per carattere... ottengo str3:


StringBuffer temp = new StringBuffer();
for (int i= 0; i<8;i++){
temp.append( (char)(str1.charAt(i)^str2.charAt(i)) );
}

Poi converto in stringa perchè devo inviarlo su un Printer che nn accetta stringbuffer ma solo string

String str3 = new String (temp.toString());
os.println(str3);

Ho inviato str3 che è lo xor di str1 e str2 ok!


Ora dal lato server ricevo str3, devo risalire alla password (per verificarla) ossia a str2!
Ho pensato : semplice rifaccio lo xor!



StringBuffer temp = new StringBuffer();
for (int i= 0; i<8;i++){
temp.append( (char)(str3.charAt(i)^str1.charAt(i)) );
}


String str2 = new String (temp.toString());

Infatti ottengo la str2 originaria.

Il problema però è il seguente : molte volte non ottengo precisamente str2 ma una stringa troncata ...

es : stringa del client str2 = abcd
stringa ricavata dal server con lo xor str2 = a oppure abc oppure completa!

Ho pensato si tratti del casting che faccio in entrambi i casi, in quanto lo xor tra 2 caratteri dovrebbe restituire un intero (4byte) a fronte del casting char(2byte) che faccio. Non saprei, così funziona ma non sempre.
Avete qualche idea "più pulita" della mia? Ve ne sarei grato!
pinkMoontwo è offline   Rispondi citando il messaggio o parte di esso
Old 14-06-2007, 09:51   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da pinkMoontwo Guarda i messaggi
Il server mi invia una stringa CASUALE di 8 caratteri .. str1;
Il client invia al server una stringa str3 (sempre di 8 caratteri) ottenuta come combinazione di str2 (altra stringa di 8 caratteri in possesso del client, sarebbe una password) e di str1.

Ricapitolando : il client riceve str1 (stringa casuale di 8 caratteri dal server) , la combina con str2 facendo uno xor carattere per carattere... ottengo str3:
Ad occhio mi sembra che vada tutto bene, magari l'errore c'è nella parte che riguarda il passaggio dei dati sulla rete ?
Un protocollo di questo tipo non è sicuro...all'avversario basta fare l'xor fra str3 e str1...

Devi usare un hash di str2+str1...ma hai detto che non puoi usare la libreria java.security...
La cosa più semplice che mi viene in mente è un cifrario a passata multipla sfruttando la stringa casuale come chiave del cifrario...ma ovviamente non è un algoritmo sicuro, sicuramente più sicuro dello xor...

Ultima modifica di cionci : 14-06-2007 alle 09:54.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 15-06-2007, 20:15   #3
pinkMoontwo
Junior Member
 
Iscritto dal: Jan 2007
Messaggi: 3
Forse ho capito il problema!!!!! (ma non mi vengono soluzioni )

Probabilmente tutto parte da come sono memorizzati i caratteri in una stringa.
Vi è memorizzato il carattere o il codice del carattere?
Cioè se str1 = "ciao" ... in effetti vi è memorizzato "\u001 \u002....." ? (ho messo codici a caso ma spero mi sia spiegato cosa voglio intendere)
Perchè credo che se vi sono memorizzati effettivamente i caratteri "c","i" ecc nella stringbuffer finale ossia temp capiti ke la somma di 2 caratteri dia come risultato il carattere backspace....e il carattere venga perso! e quindi è normale che il server non ricostruisca del tutto la stringa.
Forse ho confuso tutto.... troppo tempo sullo stesso codice, ho perso quelle poche sicurezze che avevo
pinkMoontwo è offline   Rispondi citando il messaggio o parte di esso
Old 16-06-2007, 12:23   #4
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
se non ricordo male e ho capito cosa vuoi dire, i caratteri seguono la codifica della tabella ascii : http://it.wikipedia.org/wiki/Ascii

quindi l'esempio che dici tu col backspace potrebbe anche essere "vero".


comunque un metodo di codifica alternativa ci sarebbe:

converti in binario la password con il codice ascii(c'è proprio una funzione se non ricordo male) e poi in decimale, fai una operazione matematic "complessa" con il numero casuale(o anche la stringa, fai lo stesso procedimento)arrivato dal server e poi la invii al server.

stupido secondo voi???
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


FRITZ!Repeater 1700 estende la rete super-veloce Wi-Fi 7 FRITZ!Repeater 1700 estende la rete super-veloce...
Fondazione Chips-IT, l'Italia alla riscossa nei chip. Il piano e la partnership EssilorLuxottica Fondazione Chips-IT, l'Italia alla riscossa nei ...
Nutanix: innovazione, semplicità e IA al centro della strategia hybrid multicloud Nutanix: innovazione, semplicità e IA al ...
Lenovo LOQ 15i Gen 10 (15IRX10) alla prova: il notebook gaming 'budget' che non ti aspetti Lenovo LOQ 15i Gen 10 (15IRX10) alla prova: il n...
Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando Due mesi di Battlefield 6: dalla campagna al bat...
La NASA sta anticipando le missioni di r...
SpaceX redarguisce la Cina per un rischi...
Il 2026 sarà l'anno degli smartph...
Ayaneo svela Pocket Play: è uno s...
Apple sotto indagine in Svizzera: &egrav...
Anthropic, Kaplan avverte: entro il 2030...
La versione Global dello Xiaomi Pad 8 Pr...
Aumento di prezzo in arrivo per la Ninte...
Samsung Galaxy S26 Ultra, nuove conferme...
Robot aspirapolvere ancora ai prezzi del...
Un sacco di dispositivi Ring scontati su...
Hisense HS3100 a meno di 100€ su Amazon:...
Tomb Raider Catalyst è il sequel ...
Logitech G Yeti GX in offerta su Amazon:...
Le Sony INZONE H5 scendono a 99€ su Amaz...
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: 22:37.


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