Encriptar string para usar en url
Buenos días, he investigado bastante acerca de como encriptar un string que se pueda pasar como parámetro en una url.
Encontre varias formas de hacerlo pero ninguna apta para usar dentro de una url, intente usar unas librerias (jasypt) pero no supe como implementarlo correctamente.
Necesito saber alguna forma de hacerlo, lo único que quiero es encriptar una palabra o número y que esta se pueda usar en la url sin afectar nada y que luego se pueda desencriptar.
Gracias
- Inicie sesión o regístrese para enviar comentarios
No mandes el binario
Lo mejor es que mandes su representacion en base 64, para URL's debe de reemplazarse los ultimos dos caracteres del diccionario como lo explica aqui @ezamudio
Enviar binario no es nada recomendable!
Si es lo que yo creo y
Si es lo que yo creo y entendí puedes hacerlo desde JS ya sea así o hacer un encode así, pero observa la diferencia, la primera es para encriptar mediante una llave (key) a lo que sugiero que leas lo que es encriptar para saber la diferencia con hacer un encoding de tu url que a como lo dice wikipedia lo englobaremos en code, y desde java ya sea de igual forma con
o con
y
respectivamente y los conceptos son los mismos aquí una liga a SO que explica muy bien tu pregunta.
seguridad del lado del cliente NO!
EL primer link es para cifrar, el segundo es para escapar caracteres eseciales usados en URI's.
Enviar datos cifrados y revelarlos en el lado del cliente es tan seguro como cifrarlos (en todo caso usa una capa SSL para la transferencia de datos) ahora bien, si quieres que el usaurio de la app nunca sepa este dato pos que crees que con un firebug puede saber todititios los valores de tu DOM asi que esto que mencionas no te da ninguna seguridad. Ahora bien, en mi caso cuando envio datos de un formulario y necesito saber que registro estoy consultando pues envio el ID del registro al form de la manera que te comentaba anteriormente (Cifro el dato con otras cosas y lo paso a b64) de esa manera puedo enviar de manera segura al HTML el ID de mi registro pero no hago ningun procesamiento con ese dato (con javascript ni nada del client-side), solo lo transporto para que cuando guarden informacion, la aplicacion del lado del servidor (al recibir la peticion) ya sepa que registro hay que editar (antes deshago el cifrado de la informacion y lo inverso, naturalmente)
Es mejor identificar exatamente lo que necesitas implementar porque el procesamiento en el cliente significa que NO SOLO PUEDEN SABER EL DATO CIFRADO sino que tambien PUEDEN SABER EL "MODUS OPERANDI" de tu seguridad por lo que en general tu aplicacion la haces vulnerable