Ho bisogno di passare i dati in formato crittografato con URL come questo, http://localhost:8080/app/{encrypted_data}
Java: esiste un encoder che non includa la barra diretta durante la crittografia dei dati?
Quindi, non v'è alcun encoder che non includono avanti slash (/) nella codifica?
Nota: Non voglio sostituire "/" con un altro carattere, manualmente, dai dati codificati.
.............................................. .................................................. ..............
Modificato: commento da Oleg Estekhin di utilizzare Base64 URL codifica sicura sta anche lavorando bene, sto solo aggiungendo un esempio qui.
ESEMPIO: Codifica:
String str = "subjects?_d=1";
byte[] bytesEncoded = Base64.encodeBase64URLSafe((str.getBytes()));
Decodifica:
Base64 decoder = new Base64(true);
byte[] decodedBytes = decoder.decode(new String(bytesEncoded));
System.out.println(new String(decodedBytes));
uscita:
c3ViamVjdHM_X2Q9MQ
subjects?_d=1
Per semplificare il problema, si potrebbe utilizzare https: // localhost: 8080/app/dati = {} encrypted_data per semplificare il problema. Stai cercando di nascondere i dati o di autenticare se i dati sono stati modificati? – ErstwhileIII
Nessun uomo, il requisito non è quello di utilizzare '?' o passare come parametro URL. In secondo luogo, sto codificando perché sto passando un URL su quel dato {encryped_data}, che contiene ancora un po '/'. : D – anij
Esistono varianti Base64 di sicurezza URL e la maggior parte delle librerie Base64 fornisce un metodo di codifica/decodifica sovraccarico che funziona con tali varianti. Controlla [iHarder Base64 URL_SAFE] (http://iharder.sourceforge.net/current/java/base64/api/Base64.html#URL_SAFE) per esempio. –