我们正在实施一个网络应用程序,我们希望用户登录我们的网站并输入API密钥,以便他们对网站#2进行身份验证。我们希望将API密钥保存到数据库,以便用户只需输入一次。将API密钥安全地保存到数据库的标准最佳实践是什么,以便我们开发人员无法访问它们?盐和哈希?我们如何让用户在为我们的应用程序提供API密钥时感到轻松自如?
答案 0 :(得分:1)
Salt和hash(或者更准确地说就是哈希)是单向的,你不能从你收到的哈希中找回你放入哈希函数的内容。
坦率地说,为了保护开发者,你应该在双方(你和客户)之间建立一份法律合同,而SO也无法帮助你。
您要查找的关键字是加密。例如,通过GnuPG或OpenSSL进行公钥/私钥加密,您可以将私钥交给用户(当然是通过SSL连接),或者使用密码作为用户密码使用GnuPG加密字节。
有很多选项,但你应该重新提交这个问题,并使用你在谷歌搜索我刚刚使用的所有短语后获得的知识更好的措辞。
答案 1 :(得分:0)
也许你可以选择盐和盐哈希,但还有另一种选择,即实现Diffie–Hellman key exchange或SRP protocol