【问题标题】:How to safely store sensitive data?如何安全存储敏感数据?
【发布时间】:2013-08-01 06:01:22
【问题描述】:

我目前正在编写一个使用私有 apikey 将数据发送到服务器的程序。 我不想以明文形式保留密钥,但我需要它来联系服务器。

什么样的可逆加密可以解决这个问题?

【问题讨论】:

  • chmod 600 apiKeyFile?
  • 我认为 API 密钥的意义在于它不是密码,因此如果丢失或被盗,损失很小。
  • 你为什么不想以明文形式保留密钥?

标签: python security encryption passwords


【解决方案1】:

如果你给某人程序并且它需要使用 API 密钥,似乎没有办法避免给出 API 密钥。您所能期望的最好的结果就是将其掩盖得足够隐蔽,以至于有人会认为在其他地方获取 API 密钥更容易。假设 API 密钥很难从其他地方获得,以至于有人坚持尝试从您的程序中对其进行解码,他们最终会得到它

考虑到最终用户将能够窥探与服务器的通信,甚至可以在 SSL 连接上进行中间人,无论如何您几乎肯定会在其中发送密钥纯文本。

应用一些讨厌的加密,比如 rot13,然后忘记它。

【讨论】:

    【解决方案2】:

    pycrypto 有很多工具可以做到这一点。它们在模块中包含许多标准类型的加密。

    Here 是一个快速教程。

    【讨论】:

    • SHA-2 不是加密,它是一个散列,因此是不可逆的。并且加密不一定有帮助:如果您只是将 ENCRYPTED_API_KEY = ...; AES_KEY = ...; AES_OPTIONS = ... 放入某个文件中,那么只需将其提供给任何 AES 实现并检索明文就不需要天才。
    猜你喜欢
    • 1970-01-01
    • 2020-10-27
    • 2012-03-28
    • 2017-09-15
    • 1970-01-01
    • 1970-01-01
    • 2012-08-02
    • 1970-01-01
    • 2014-09-30
    相关资源
    最近更新 更多