Estoy tratando de implementar un codificador de cadena simple para ofuscar algunas partes de una cadena de URL (para evitar que un usuario las saque de red). Estoy utilizando el código casi idéntica a la muestra en el JCA guide, excepto:Evitar saltos de línea en cadena URL cifrada y codificada
- utilizando DES (asumiendo que es un poco más rápido que AES, y requiere una clave más pequeña) y
- base 64 es/decodificación de la cadena de asegúrese de que sea seguro para una URL.
Por razones que no puedo entender, la cadena de salida termina con saltos de línea, que presumo que no funcionarán. No puedo entender qué está causando esto. ¿Sugerencias sobre algo similar que sea más fácil o consejos sobre otros recursos para leer? Estoy encontrando todas las referencias de criptografía un poco sobre mi cabeza (y excesivo), pero una simple implementación ROT13 no funcionará porque quiero tratar con un juego de caracteres más grande (y no quiero perder el tiempo implementando algo que probablemente sea tengo problemas con personajes oscuros que no pensé).
entrada de la muestra (sin salto de línea):
http://maps.google.com/maps?q=kansas&hl=en&sll=42.358431,-71.059773&sspn=0.415552,0.718918&hnear=Kansas&t=m&z=7
Salida de muestra (saltos de línea como se muestra a continuación):
GstikIiULcJSGEU2NWNTpyucSWUFENptYk4m5lD8RJl8l1CuspiuXiE9a07fUEAGM/tC7h0Vzus+
jAH6cT4Wtz2RUlBdGf8WtQxVDKZVOzKwi84eQh2kZT9T3KomlnPOu2owJ/2RAEvG+QuGem5UGw==
mi codificar fragmento:
final Key key = new SecretKeySpec(seed.getBytes(), "DES");
final Cipher c = Cipher.getInstance("DES");
c.init(Cipher.ENCRYPT_MODE, key);
final byte[] encVal = c.doFinal(s.getBytes());
return new BASE64Encoder().encode(encVal);
¿Intentó simplemente revertir su operación de codificación y ver si funciona ? – Snicolas
¿De dónde viene esa clase BASE64Encoder? – leonbloy
@leonbloy Estaba importando sun.misc.BASE64Decoder, que he encontrado gracias a [esta publicación] (http://stackoverflow.com/questions/2267036/work-sun-misc-base64encoder-decoder-for-getting- byte) no es una buena idea. – milletron