【发布时间】:2018-08-27 11:35:52
【问题描述】:
我们正在实施一个网络应用程序,我们希望用户在其中登录我们的网站并输入 API 密钥,以便他们对网站 #2 进行身份验证。我们希望将 API 密钥保存到数据库中,以便用户只需输入一次。将 API 密钥安全保存到数据库以使我们开发人员无法访问它们的标准最佳实践是什么?盐和哈希?我们如何让用户放心地为我们的应用提供 API 密钥?
【问题讨论】:
标签: security web web-applications
我们正在实施一个网络应用程序,我们希望用户在其中登录我们的网站并输入 API 密钥,以便他们对网站 #2 进行身份验证。我们希望将 API 密钥保存到数据库中,以便用户只需输入一次。将 API 密钥安全保存到数据库以使我们开发人员无法访问它们的标准最佳实践是什么?盐和哈希?我们如何让用户放心地为我们的应用提供 API 密钥?
【问题讨论】:
标签: security web web-applications
也许您可以使用盐和哈希,但还有另一种选择,即实现 Diffie–Hellman key exchange 或 SRP protocol
【讨论】:
盐和散列(或者更准确地说只是散列)是一条单行道,你无法从你收到的散列中取回你放入散列函数的内容。
坦率地说,为了保护开发人员,您可能应该在两方(您和客户)之间建立一份法律合同,而 SO 对此无能为力。
您要查找的关键字是加密。例如,通过 GnuPG 或 OpenSSL 进行公钥/私钥加密,您将私钥交给用户(当然是通过 SSL 连接),或者使用 GnuPG 使用作为用户密码的密码来加密字节。
有很多选择,但您可能应该使用谷歌搜索我刚刚使用的所有短语后获得的知识,使用更好的短语重新提交此问题。
【讨论】: