jasypt-spring-boot-1.17: Не удалось расшифровать свойства, убедитесь, что пароли шифрования / дешифрования совпадают.

У меня есть jasypt-spring-boot-1.17 с версией Spring «4.2.5.RELEASE» и версией Spring Boot «1.5.3.RELEASE».

Я использую первый метод с этого веб-сайта (https://github.com/ulisesbocchio/jasypt-spring-boot), поскольку я использую @SpringBootApplication в своем классе application.java.

Я сделал первое тестирование. 1. Я использовал это обозначение @PropertySource («classpath: sampleservices.yml») или @PropertySource («classpath: sampleservices.properties») в моем ApplicationMain.java. 2. Я сохранил пароль ENC () в отдельном файле, sampleservices.yml или sampleservices.properties. 3. Я определил следующий код в моем файле application.yml. Я установил простое значение пароля для JASYPT_ENCRYPTOR_PASSWORD в переменной окружения. Тест прошел успешно. jasypt: encryptor: bean: encryptorBean пароль: $ {JASYPT_ENCRYPTOR_PASSWORD:}

Однако настоящий зашифрованный пароль ENC () хранится в моем файле application.yml следующим образом. Пожалуйста, дайте мне знать, что именно я должен реализовать, чтобы процесс дешифрования прошел успешно. Мне нужно использовать этот расшифрованный пароль для входа в БД.

Я изменил этот код @PropertySource ("application.yml"), но я не знаю, как перейти к полю пароля здесь.

Из файла application.yml: Spring: profiles: образец источника данных: имя-класса-драйвера: com.mysql.jdbc. URL-адрес драйвера: jdbc: mysql: abc имя пользователя: пароль пользователя: ENC (xxxxxxxx)

I kept getting this error.

com.ulisesbocchio.jasyptspringboot.exception.DecryptionException: Decryption of Properties failed,  make sure encryption/decryption passwords match
at com.ulisesbocchio.jasyptspringboot.resolver.DefaultPropertyResolver.resolvePropertyValue(DefaultPropertyResolver.java:37) ~[jasypt-spring-boot-1.17.jar!/:?]

Thanks a lot!

person spring notes    schedule 03.10.2018    source источник


Ответы (1)


У меня была такая же проблема с весенней загрузкой 2.1.3. Но позже я узнал, что это был просто мой глупый случай. Я просто неправильно понимаю значение параметра ввода и пароля. Когда я шифрую в командной строке, я думал, что ввод означает ключ, а затем я меняю значение между двумя из них при запуске приложения.

Итак, помните:

input = [ваш настоящий пароль]

пароль = [это ключ jasypt]

Если это не ваша основная причина, еще одна вещь, которую следует учитывать, - это когда вы зашифровываете пароль в Windows, он может не использоваться в Linux. Возможно, вам придется зашифровать в Linux, когда вам нужно запускать приложения в Linux.

person poomcyber    schedule 27.07.2019