【发布时间】:2017-06-27 07:32:47
【问题描述】:
现在我知道这个问题已经被问过很多次了,关于在哪里进行加密、加密什么以及使用什么加密。
无论如何,当涉及到数据库中的数据加密时,我知道我可以将AES_ENCRYPT() 与字段名和给定密钥一起使用,另外我可以合并日期和时间之类的内容,甚至可以合并存储在单独表中的密钥.
我和其他人可能面临的问题是,似乎有一百万种不同的方法可以做到这一点,每个人都有自己的看法。
在安全方面,我知道最好不要尝试创建自己的安全措施。
所以,我的问题是:遵循什么好的标准做法?
我对使用 AES 没有意见,但有行业标准吗?
【问题讨论】:
-
让我们看看我是否理解。问题的前半部分(包括代码)与它无关。您想在 MySQL 中加密数据,但不确定是否使用
AES_ENCRYPT(),因为您已经阅读了太多意见,所以您决定要更多?我建议您编辑问题,删除所有对单向哈希的引用(因为您需要双向加密)并将其放在可以使其回答的特定术语中。您对 AES 的具体担忧是什么? -
好吧,这很公平。
-
如果您有充分的理由加密数据库中的数据,并且希望 MySQL 自动为您处理,那么使用
AES_ENCRYPT就可以了,因为它将处理初始化向量等背后的复杂细节。但是,如果您没有有充分的理由在数据库级别加密数据(因为在处理加密字段时您丢失了 SQL 附带的所有好处),那么就不要这样做它并加密您的应用程序和 MySQL 之间的流量(也可以由 MySQL 自动处理)。 -
Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Information Security Stack Exchange 或Database Administrators Stack Exchange 会是一个更好的提问地点。
标签: mysql database security encryption