Visualizzazione dei risultati da 1 a 6 su 6

Hybrid View

  1. #1
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Non me ne intendo tantissimo di crittografia ma ..... di una cosa sono certo:

    codice:
    byte[] cipherText = cipher.doFinal(str);
    return new String(cipherText,"UTF8");

    Da un byte array che contiene dati cifrati (quindi nulla che sia una sequenza di byte in un certo charset valido per rappresentare una stringa) e passare a String .... semplicemente non ha senso.
    Ho fatto così perchè poi dovrò inviare i dati cifrati tra client e server; quindi secondo te dovrei inviare byte array tra client e server?(io ritornavo stringhe per facilitare l'invio e la ricezione)

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da PaniKo_92 Visualizza il messaggio
    Ho fatto così perchè poi dovrò inviare i dati cifrati tra client e server; quindi secondo te dovrei inviare byte array tra client e server?(io ritornavo stringhe per facilitare l'invio e la ricezione)
    Se il protocollo che dovrai usare è "binario", certamente è meglio inviare direttamente i byte così come sono. Se il protocollo fosse testuale, puoi codificare il byte array in una stringa con un formato come es. Hex, Base64, Ascii85, ecc...

    Ma sicuramente non con new String(byteCifrati, "nomecharset") perché String si aspetta che lo stream di byte rappresenti una sequenza di caratteri codificata in un certo charset mentre invece nel tuo caso non lo è affatto perché è il risultato di una cifratura che rende la sequenza di byte totalmente incomprensibile e apparentemente "casuale". Questo spero ti sia chiaro ora.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    andbin;25196248]Se il protocollo che dovrai usare è "binario", certamente è meglio inviare direttamente i byte così come sono. Se il protocollo fosse testuale, puoi codificare il byte array in una stringa con un formato come es. Hex, Base64, Ascii85, ecc...

    Ma sicuramente non con new String(byteCifrati, "nomecharset") perché String si aspetta che lo stream di byte rappresenti una sequenza di caratteri codificata in un certo charset mentre invece nel tuo caso non lo è affatto perché è il risultato di una cifratura che rende la sequenza di byte totalmente incomprensibile e apparentemente "casuale". Questo spero ti sia chiaro ora.
    Ti ringrazio per il chiarimento, mi potresti illustrare la procedura per codificare l array di byte in una stringa con formato Hex?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da PaniKo_92 Visualizza il messaggio
    mi potresti illustrare la procedura per codificare l array di byte in una stringa con formato Hex?
    Ci sono diversi modi per formattare i byte in string hex, più o meno performanti. E ci sono anche librerie apposite es. la Apache Commons Codec che contiene funzionalità di (de)codifica di questo tipo.

    Il punto è però un altro, cioè valutare meglio cosa devi fare. Parlavi di "inviare i dati cifrati tra client e server". Precisa quindi cosa sono client e server, come comunicano, con quale "protocollo" e cosa devono scambiarsi. Dopodiché si può sicuramente valutare meglio la soluzione.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.