我有一段代码在加密时工作正常,加密有效,但我不喜欢加密字符串中使用的字符,因为它必须在URL中传递,我更喜欢的字符是az,AZ和0-9,这可能吗?
String key = enc_key;
// Create key and cipher
Key aesKey = new SecretKeySpec(key.getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES");
// encrypt the text
cipher.init(Cipher.ENCRYPT_MODE, aesKey);
byte[] encrypted = cipher.doFinal(text.getBytes());
System.out.println(new String(encrypted));
Run Code Online (Sandbox Code Playgroud)
加密的字符串看起来像这个 ò'Ê>‡6?dövNé÷s 这不是URL友好的:-(,有什么建议吗?
首先使用正常的AES加密,然后对结果进行base64编码.在另一端,他们必须base64解码然后解密.如果您使用的是java 8,请使用内置的base64编解码器.如果在java 7或更早版本上,请使用apache commons编解码器.