【问题标题】:MySQL Column for Encryption用于加密的 MySQL 列
【发布时间】:2012-02-24 14:47:49
【问题描述】:

我需要构建一个小型私人应用程序。我想将一条个人身份信息(它是一个内部帐号——不是 SSN 或类似超级敏感的任何东西)存储在一个“加密”它的表中。

我将加密放在引号中,因为我希望数据按如下方式存储:

  • 以某种方式存储,如果有人实际查看表数据,则该信息将无法辨别
  • 以某种方式存储,如果有人执行简单的查询选择,则结果数据输出将无法辨别
  • 然而,当我编写自己的查询选择语句时,我仍然可以解密数据并以可读的方式呈现它

换句话说,我希望它只是适度加密,以便我仍然可以解密和阅读它。我知道 MD5 散列会锁定该值,以免被读取。我想要的东西比这少。

谢谢

【问题讨论】:

标签: mysql encryption


【解决方案1】:

MD5 是加密。这是散列。

如果您不介意在每个查询中传递加密密钥,那么在 MySQL 中使用它是微不足道的:

SELECT AES_DECRYPT(crypted_field, 'crypt key goes here') AS decrypted

INSERT INTO yourtable (crypted) VALUES (AES_ENCRYPT('some string', 'crypt key'));

【讨论】:

    【解决方案2】:

    我认为您正在寻找的是“对称密钥加密”。您可以使用密钥来加密您的数据,并根据需要使用相同的密钥对其进行解密(与您所说的哈希函数相反 - 使原始数据无法恢复)。在 MySQL 中,我会看一下AES_Encrypt and AES_Decrypt functions.。希望这能让您指明正确的方向!

    【讨论】:

      【解决方案3】:

      MySQL 同时提供DES and AES encryption。您需要弄清楚密钥管理,但可以使用加密算法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-19
        • 2015-04-12
        • 2014-03-26
        • 1970-01-01
        • 2019-01-05
        • 2011-06-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多