加密SQL Server列中的所有值

时间:2011-12-01 17:15:52

标签: java sql-server hibernate encryption jasypt

我在SQL Server上使用Java,并且有一个带有未加密信用卡列的表。 如何使用AES加密加密列中的所有字段?

SQL或Java(jdbc或hibernate)解决方案可以。

我想开始使用Jasypt来加密未来的值,但我不知道如何加密现有值。

这是我使用的jasypt-spring加密定义:

<bean id="hibernateStringEncryptor"
    class="org.jasypt.hibernate.encryptor.HibernatePBEStringEncryptor">
    <property name="registeredName">
        <value>strongHibernateStringEncryptor</value>
    </property>
    <property name="password">
        <value>1234</value>
    </property>
</bean>

1 个答案:

答案 0 :(得分:0)

您可以直接在数据库上执行此操作,具体取决于您使用的数据库以及它是否支持您使用的加密算法。

例如,如果您使用的是MySQL and AES,那么您只需使用SQL查询进行更新;

update credit_card_table set card_number = AES_ENCRYPT(card_number,'password');

毋庸置疑,您需要首先对此进行测试,并确保您不会对数据进行测试。