Jasypt Spring Boot HIbernate wie komme ich an den Key?

OnDemand

Top Contributor
Hallo zusammen,

habe Jasypt um Keys in der application.properties verschlüsselt zu speichern. Klappt auch, ich bekomme den korrekten Wert in einer Bean.
Nun möchte ich das auch in Hibernate Entity nutzen. Hat jemand ne Idee, wir ich als key den Wert aus der Properties bekomme?

${aes.key} funktioniert so natürlich nicht, das wird als Key genutzt

Java:
@ColumnTransformer(
            read = "AES_DECRYPT(empfaenger_name, '${aes.key}')",
            write = "AES_ENCRYPT (?, '${aes.key}')"
    )
    String empfaengerName;
 
Hab es jetzt wie folgt gelöst. Die Daten werden wie im Screenshot oben verschlüsselt abgespeichert, auslesen mit Java klappt auch. Aber über Online-Tools kann ich einen verschlüsselten String nicht decrypten. Ist das jetzt gut oder schlecht 😀 Es gibt keine MYSQL Funktion um die Daten auszulesen, wenn nun mal irgendwie was nötig ist aus der DB zu lesen, geht das nur über ein Programm was die Entschlüsselung beherrscht, nicht über die DB direkt.


Ist der Algorithmus PBEWithMD5AndTripleDE ausreichend?

Java:
@Configuration
public class HibernateConfig {
    @Value("${aes.key}")
    private String jasyptKey;

    @Bean
    public HibernatePBEStringEncryptor hibernateIntegerEncryptor() {
        HibernatePBEStringEncryptor hibernatePBEStringEncryptor = new HibernatePBEStringEncryptor();
        hibernatePBEStringEncryptor.setRegisteredName("hibernateIntegerEncryptor");
        hibernatePBEStringEncryptor.setAlgorithm("PBEWithMD5AndTripleDES");
        hibernatePBEStringEncryptor.setPassword(jasyptKey);
        return hibernatePBEStringEncryptor;
    }
}

Java:
@Entity
@Table(name = "umsatz")
@TypeDef(
        name="encryptedString",
        typeClass=EncryptedStringType.class,
        parameters= {
                @Parameter(name="encryptorRegisteredName", value="hibernateIntegerEncryptor")
        }
)
public class Umsatz {


    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    @Type(type="encryptedString")
    String empfaengerName;
    //GETTER SETTER
}

Edit: mit einem Onlinetool konnte ich es teilweise entschlüsseln
1632284611405.png
 
Zuletzt bearbeitet:

Zurück
Oben