I need to get a shorter characters using my encrypted link. This is is the encoded characters Im currently getting using my code: data=xvXTyQe6cthuC0GdQcOvCR5PKSlFiMqLBt7tM0zbxHs%3D
. I want to achieve shorter characters than this.
What I have done:
Given below is related part of my code:
private Map<String, Object> getEUGenericDataMapFields(Map<String, Object> data , Document doc) {
String imeiOrSerial = org.apache.commons.lang3.StringUtils.isNotBlank(doc.getIMEINumber()) ? doc.getIMEINumber() : doc.getDeviceSerialNo();
String link = imeiOrSerial + PolicyConstants.REGEX_PIPE + PolicyConstants.RENEWAL_SMS;
public static String encrypt(String strToEncrypt, String secret) {
try {
Key secretKey = generateKey(secret);
Cipher cipher = Cipher.getInstance(PolicyConstants.AES);
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
return Base64.getEncoder().encodeToString(cipher.doFinal(strToEncrypt.getBytes(StandardCharsets.UTF_8)));
} catch (Exception e) {
log.error("Error while encrypting: " + e);
}
return null;
}
link = EncryptionUtil.encrypt(link, Config.getSecretKey());
data.put(PolicyConstants.DATA_LINK, URLEncoder.encode(link, StandardCharsets.UTF_8.toString()));
return data;
}
Result:
data=xvXTyQe6cthuC0GdQcOvCR5PKSlFiMqLBt7tM0zbxHs%3D (almost 50 characters)
Expected result: less than 5 characters if possible.