conversión de Base64 para la matriz de bytes en el cifrado

2

Estoy usando el algoritmo ECC para seguridad. Ahora la preocupación es que estoy colocando los datos en la página web después de cifrar los datos en formato hexadecimal y transmitirlos al servidor y luego descifrar los datos, pero cuando cifro los datos, en ese momento el método me devuelve el byte [] y luego tendré que convertir ese byte [] en Base64 byte [] , si no estoy haciendo esto, entonces me da un error de relleno incorrecto al descifrar los datos. así que mi preocupación es ¿por qué necesito convertir esos datos byte [] en datos Base64 byte [] ?

    
pregunta Bhavik Ambani 22.01.2012 - 08:38
fuente

4 respuestas

7

Parece que está utilizando la criptografía de forma incorrecta. No hay razón para almacenar datos encriptados dentro de una página html. Además, más ECC y otros algoritmos asimétricos son muy intensivos en recursos. Se debe usar un cifrado simétrico con un modo que tenga autenticación.

Pero lo más importante. ¿Por qué no estás usando HTTPS ?

    
respondido por el rook 22.01.2012 - 08:59
fuente
2

Use Session, almacene lo que necesite en el objeto Session (sin cifrado)

    
respondido por el AaronS 22.01.2012 - 10:05
fuente
2

Si no quiere que el usuario toque algo, simplemente use las variables de sesión. (Ej. $ _SESSION)

Si desea proteger al usuario final, obtenga un buen certificado y envíelo solo a través de HTTPS.

    
respondido por el Fabián Heredia Montiel 22.01.2012 - 15:37
fuente
1

Voy a tener que estar de acuerdo con Rook, y decir lo que sea que estés haciendo, lo estás haciendo mal.

Para responder a su pregunta, la razón por la que tiene que convertir los datos binarios en una cadena codificada en base64 es que los datos binarios no se pueden codificar de manera confiable en un documento de solo texto (como HTML) sin realizar una transformación de conversión de texto. , el más popular de los cuales es la codificación base64. No voy a entrar en detalles, pero hay una serie de cosas que tienen que ver con los juegos de caracteres y esas cosas. Existen otras transformaciones (salida hexadecimal, por ejemplo) pero base64 es probablemente la forma más sencilla de hacerlo.

Dicho esto, probablemente no deberías hacer lo que sea que estés haciendo. Si necesita transmitir datos al cliente de forma segura, utilice SSL / TLS / HTTPS. De lo contrario, no lo estás haciendo de forma segura. Si necesita almacenar datos del lado del cliente que el cliente no leerá, simplemente no lo haga. Almacene los datos en su servidor y proporcione al cliente una clave de sesión que haga referencia a la ubicación de almacenamiento del servidor. De lo contrario, no lo harás de forma segura.

En serio.

    
respondido por el tylerl 23.01.2012 - 17:56
fuente

Lea otras preguntas en las etiquetas