В настоящее время я использую jasypt в качестве инструмента шифрования, проблема в том, что когда слово зашифровано, оно выдает '/', я хочу избежать косых черт в моих шифрах.причина в том, что я использую его в своем URL.
, поэтому, например, jasypt создает этот зашифрованный текст:
String encryptedText = "/O0sJjPUFgRGfND1TpHrkbyCalgY/rSpE8nhJ/wYjYY=";
Я добавлю это в моей ссылке ..
пример этого:
String.format("%s%s", "youtube.com/videos/", encryptedText);
это перенаправит меня на другую ссылку, поэтому вместо перехода в раздел видео он перейдет на / O0sJjPUFgRGfND1TpHrkbyCalgY
вот мой код:
public class EncryptionUtil {
public static final String ENCRYPTION_KEY = "test-encryption";
private static final String EMPTY_KEY_OR_TEXT = "Decryption key and text must not be empty.";
public static String decrypt(final String encryptedText) {
if (StringUtils.isAnyBlank(encryptedText)) {
throw new ApiErrorException(EMPTY_KEY_OR_TEXT);
}
try {
final char[] keyCharArray = ENCRYPTION_KEY.toCharArray();
final BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
textEncryptor.setPasswordCharArray(keyCharArray);
return textEncryptor.decrypt(encryptedText);
} catch (EncryptionOperationNotPossibleException e) {
throw new ApiErrorException(e.getMessage());
}
}
public static String encrypt(final String plaintext) {
if (StringUtils.isAnyBlank(plaintext)) {
throw new ApiErrorException(EMPTY_KEY_OR_TEXT);
}
final char[] keyCharArray = ENCRYPTION_KEY.toCharArray();
final BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
textEncryptor.setPasswordCharArray(keyCharArray);
return textEncryptor.encrypt(plaintext);
}
}
вот мой контроллер пружины:
@GetMapping("/profile/client-users/{userId}")
public ModelAndView getAccountAccess(
@PathVariable String userId, ModelMap modelMap) {
userId = EncryptionUtil.decrypt(userId);
}