KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have a database column that needs to be encrypted, when passed from a hibernate backed webapp. The webapp is on tomcat 6, Hibernate 4, and Mysql as the backing store. The problem however is that the password to encrypt/decrypt this field will only be available at runtime of the program. Initially I had hoped to use the AES_ENCRYPT/DECRYPT methods, outlined quite well here: DataBase encryption in Hibernate and here: http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/mapping.html#mapping-column-read-and-write (Though this does refer to version 3.6 of hibernate, I believe it should be the same in 4.0). However, since this uses the following notation: @Column(columnDefinition= "LONGBLOB", name="encryptedBody") @ColumnTransformer( read="AES_DECRYPT(encryptedBody, 'password')", write="AES_ENCRYPT(?, 'password')") public byte[] getEncryptedBody() { return encryptedBody; } public void setEncryptedBody(byte[] encryptedBody) { this.encryptedBody = encryptedBody; } This requires that the password be specified in the annotation itself, and cannot be a variable. Is there a way to use the database methods through hibernate in this manner, but with the password as a variable? Is there a better approach?
Tags (comma-separated)
Save Edits
Cancel