Conversione Base64 per array di byte in crittografia

2

Sto usando l'algoritmo ECC per sicurezza. Ora la preoccupazione è che sto mettendo i dati nella pagina web dopo la crittografia dei dati in formato esadecimale e li trasmetto al server e poi decrittografa i dati, ma quando crittografo i dati allora in quel momento il metodo mi restituisce il byte [] e poi dovrò convertire quel byte [] in Base64 byte [] , se non sto facendo questa cosa allora mi dà errore di bad pading mentre decodifica i dati. quindi il mio conern è il motivo per cui ho bisogno di convertire i dati di byte [] in Base64 byte [] data?

    
posta Bhavik Ambani 22.01.2012 - 08:38
fonte

4 risposte

7

Sembra che tu stia utilizzando la crittografia in modo improprio. Non vi è alcun motivo per archiviare dati crittografati in una pagina html. Ulteriore più ECC e altri algoritmi asimmetrici sono ad alta intensità di risorse. Un codice simmetrico dovrebbe essere usato con una modalità con autenticazione.

Ma soprattutto. Perché non utilizzi HTTPS ?

    
risposta data 22.01.2012 - 08:59
fonte
2

Usa Session, salva ciò che ti serve in Session object (senza crittografia)

    
risposta data 22.01.2012 - 10:05
fonte
2

Se non vuoi che l'utente tocchi qualcosa usa semplicemente le variabili di sessione. (Es. $ _SESSION)

Se vuoi proteggere l'utente finale, ottieni un certificato valido e fornisci solo tramite HTTPS.

    
risposta data 22.01.2012 - 15:37
fonte
1

Dovrò essere d'accordo con Rook e dire qualunque cosa tu stia facendo, stai sbagliando.

Per rispondere alla tua domanda, il motivo per cui devi convertire i dati binari in una stringa codificata in base64 è che i dati binari non possono essere codificati in modo affidabile in un documento di solo testo (come HTML) senza eseguire alcuna conversione convert-to-text su di esso , il più popolare dei quali è la codifica base64. Non entrerò nei dettagli, ma c'è una serie di cose che hanno a che fare con set di caratteri e cose del genere. Esistono altre trasformazioni (output esadecimale, ad esempio) ma base64 è probabilmente il modo più semplice per andare.

Detto questo, probabilmente non dovresti fare quello che stai facendo. Se è necessario trasmettere i dati al client in modo sicuro, utilizzare SSL / TLS / HTTPS. Altrimenti, non lo stai facendo in modo sicuro. Se hai bisogno di archiviare dati sul lato client che il client non leggerà, non farlo. Archiviare i dati sul server e fornire al client una chiave di sessione che faccia riferimento alla posizione di archiviazione del server. Altrimenti, non lo farai in modo sicuro.

Davvero.

    
risposta data 23.01.2012 - 17:56
fonte

Leggi altre domande sui tag