При использовании jasypt, как я могу получить зашифрованное значение для ввода в свою конфигурацию?

#spring-boot #encryption #jasypt

Вопрос:

У меня есть проект Spring Boot, в котором мне нужно зашифровать некоторые свойства в файле application.properties. Я пробовал использовать jasypt, но быстро столкнулся с проблемой: как зашифровать свойство, чтобы вставить его в конфигурацию? Я нашел несколько веб-страниц, которые позволяли мне шифровать и расшифровывать, но они использовали старый алгоритм вместо нового по умолчанию PBEWITHHMACSHA512ANDAES_256.

Ответ №1:

Вы можете использовать команду mvn, чтобы получить зашифрованное значение в свой конфигурационный файл.

Например, если вы хотите зашифровать значение mySecret, поместите значение в качестве свойства в файл application.properties, заключенный в квадратные скобки и с префиксом DEC.

 secret.property.example.value=DEC(mySecret)
 

Теперь запустите команду шифрования с помощью mvn, указав пароль.

 mvn jasypt:encrypt -Djasypt.encryptor.password="myPassword"
 

Выполнение приведенной выше команды создаст зашифрованное секретное значение и сохранит его в файле свойств. Ваша ценность будет выглядеть примерно так

 secret.property.example.value=ENC(mySecretEncrypted)
 

Вы можете напрямую прочитать значение в приложении с аннотацией @Value, и строка, которую вы там получите, уже будет расшифрована.