Ich möchte mein Feld in der Datenbank in eine Zeichenfolge entschlüsseln, und ich möchte es im Frühjahr auf Controller übergeben. Ich habe eine Hibernate-Klasse wie folgt:Wie entschlüsseln Passwort bei Hibernate
@Id
@Column(name = "USER_ID")
private BigDecimal userId;
@Column(name = "user_name")
private String username;
@Column(name = "EMPLOYEE_ID")
private BigDecimal employeeId;
@Column(name = "encrypted_user_password")
@ColumnTransformer(write="EncryptByPassPhrase('BN1HC1T',?)", read="decrypt ('BN1HC1T',pswd)")
private String encrypted_user_password;
public BigDecimal getUserId() {
return userId;
}
public void setUserId(BigDecimal userId) {
this.userId = userId;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public BigDecimal getEmployeeId() {
return employeeId;
}
public void setEmployeeId(BigDecimal employeeId) {
this.employeeId = employeeId;
}
public String getEncrypted_user_password() {
return encrypted_user_password;
}
public void setEncrypted_user_password(String encrypted_user_password) {
this.encrypted_user_password = encrypted_user_password;
}
Und das Ergebnis der Abfrage ist:
select
karyawan0_.USER_ID as USER_ID1_0_,
karyawan0_.EMPLOYEE_ID as EMPLOYEE_ID2_0_,
decrypt('BN1HC1T',
karyawan0_.encrypted_user_password) as encrypted_user_pas3_0_,
karyawan0_.user_name as user_name4_0_
from
FND_USER karyawan0_
where
karyawan0_.user_name=?
Und ich erhalte eine Fehlermeldung wie folgt aus:
java.sql.SQLSyntaxErrorException: ORA-00904: "DECRYPT": invalid identifier
Meine Frage ist richtig, aber ich Erhalte einen Fehler. Wie man es repariert?
Eine solche Logik sollte meiner Meinung nach nicht auf der DB-Ebene behandelt werden ... Erstellen Sie einen Dienst/dao, der das Entschlüsseln des Kennworts programmgesteuert übernehmen kann. –