如何对现有的MySQL数据库进行加密?

5

我们公司需要在将机密数据发送给我们进行PHP开发之前先对其进行加密。他们询问我们这种情况下最好的方法是什么。

要求数据必须解密。

是否有免费/商业工具可以做到这一点,或者只能通过PHP或Linux命令来实现?


1
通过SSH或SSL传输数据,或使用PGP加密并通过任何连接发送。 - Dietrich Epp
我想仅加密某些表中的特定字段,并具有解密功能。谢谢。我会了解PGP加密。 - marknt15
假设你要从一个地方转移数据库,加密整个数据库会更容易。当然,如果你没有解密的能力,那就不是加密,而是毁灭。 - Dietrich Epp
2个回答

8

MySQL已经包含了可逆的加密函数,例如AES_ENCRYPT()。

您可以按列对敏感数据进行如下方式的混淆:

UPDATE SomeTable SET sensitive_column = AES_ENCRYPT(sensitive_column, 'password');

这至少适用于字符串数据。

使用AES加密,但使用弱密码的想法很有趣,但无论如何还是+1 :) - Patashu
6
@Patashu,这只是一个例子,我不建议使用密码字面上为“password”。同样,我认为这个表的名字不会字面上是SomeTable。 :-) - Bill Karwin
1
谢谢。它有效了。他们将不得不在发送给我们加密数据之前手动为其机密数据执行此操作。但是,他们不应加密用于连接数据表的ID :) - marknt15

1
根据需求,我认为实际上不需要加密数据本身。可能需要掩盖数据,例如将表中的真实姓名、地址和电话号码更改为新的虚构值,以便进行开发和应用程序测试。http://en.wikipedia.org/wiki/Data_masking

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接