仅在java中使用密码加密对字符串进行加密

仅在java中使用密码加密对字符串进行加密,java,encryption,Java,Encryption,我有一段加密时可以正常工作的代码,加密可以正常工作,但我不喜欢加密字符串中使用的字符,因为它必须在URL中传递,我更喜欢的字符是a-z、a-z和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 ci

我有一段加密时可以正常工作的代码,加密可以正常工作,但我不喜欢加密字符串中使用的字符,因为它必须在URL中传递,我更喜欢的字符是a-z、a-z和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));
加密字符串如下所示 6?dövNÃ÷s
这不是URL友好的:-(,有什么建议吗?

首先使用常规AES加密,然后对结果进行base64编码。在另一端,他们必须先进行base64解码,然后再进行解密。如果您使用的是java 8,请使用内置。如果使用的是java 7或更早版本,请使用。

base64编码是一种标准编码,这意味着其他任何人都可以对其进行解码,因为这将被使用通过URL打开,所以这不安全,还是我错了?加密后使用Base64编码,以便将加密的字节编码为可以在URL中安全使用的形式。另一方面,该字符串将首先进行Base64解码,然后解密,以获得纯文本。