Sto tentando di implementare un codificatore di stringhe semplice per offuscare alcune parti di una stringa di URL (per impedire che vengano eliminate da un utente). Sto utilizzando il codice quasi identico al campione nel JCA guide, ad eccezione di:Evitare interruzioni di riga nella stringa di URL codificata e codificata
- con DES (ammesso che sia un po 'più veloce di AES, e richiede una chiave più piccola) e
- Base64 it/decodifica la stringa assicurati che rimanga sicuro per un URL.
Per motivi che non riesco a capire, la stringa di output termina con interruzioni di riga, che presumo non funzionerà. Non riesco a capire cosa sta causando questo. Suggerimenti su qualcosa di simile che sia più facile o indicazioni su altre risorse da leggere? Sto trovando tutti i riferimenti di crittografia un po 'sopra la mia testa (e eccessivo), ma una semplice implementazione ROT13 non funzionerà dato che voglio trattare con un set di caratteri più grande (e non voglio perdere tempo ad implementare qualcosa che probabilmente avere problemi con personaggi oscuri a cui non avevo pensato).
ingresso del campione (senza linea di rottura):
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
Output di esempio (interruzioni di linea come illustrato di seguito):
GstikIiULcJSGEU2NWNTpyucSWUFENptYk4m5lD8RJl8l1CuspiuXiE9a07fUEAGM/tC7h0Vzus+
jAH6cT4Wtz2RUlBdGf8WtQxVDKZVOzKwi84eQh2kZT9T3KomlnPOu2owJ/2RAEvG+QuGem5UGw==
mia codificare frammento:
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);
hai provato a ripristinare la tua operazione di codifica e vedere se Funziona ? – Snicolas
da dove proviene la classe BASE64Encoder? – leonbloy
@leonbloy Stavo importando sun.misc.BASE64Decoder, che ho trovato grazie a [questo post] (http://stackoverflow.com/questions/2267036/work-sun-misc-base64encoder-decoder-for-getting- byte) non è una buona idea. – milletron