我一直在互联网上搜索,并找到了很多关于如何存储 paypal API 凭证(用于 Paypal Express Checkout)的答案。他们说使用盐对凭证进行哈希处理。但我不明白如何以及在哪里存储盐。如果他们可以访问盐,他们不能直接对凭证进行反哈希处理吗?这对我来说似乎不太安全。他们说不要对 API 凭证进行硬编码,但任何其他方式似乎仍然非常脆弱。感谢您花时间查看我的问题。我真的很感激您的帮助。
答案1
对它们进行哈希处理没有多大意义,因为根据定义,一旦对某物进行哈希处理,就无法将其恢复(无法取消哈希处理,但可以使用彩虹表或暴力破解哈希)。通常,如果对哈希加盐,则会将盐与哈希一起存储,以便可以将某物与哈希进行比较;盐的唯一作用是使彩虹攻击更加困难。
我建议将它们存储在一个受某种限制的文件中(例如,只有 root 可以读取)。然后,您的签出服务可以在放弃权限之前读取该文件,类似于通常处理 X.509 证书的方式。
对它们进行硬编码通常非常脆弱;这意味着如果出于任何原因有人可以看到您的源代码,那么他们就拥有了凭据(例如,如果处理程序设置错误)。